func SmokeTest(extScc string, stub shim.ChaincodeStubInterface, args [][]byte) pb.Response {
	if stub == nil || args == nil {
		logger.Info("SmokeTest: The arguments extScc or args may be nil")
	}
	switch extScc {
	case FMPScc:
		logger.Info("Executing FMP SCC smoke test...")
		return healthcheckFmpScc(stub, args)
	case ConfigurationScc:
		logger.Info("Executing Confirguration SCC smoke test...")
		return healthcheckConfigurationScc(stub, args)
	case TxDelegationScc:
		logger.Info("Executing Tx Delegation SCC smoke test...")
		return healthcheckTxDelegationScc(stub, args)
	default:
		logger.Info("Smoke test of unrecognized ExtSCC '%s' ...")
		defaultResult := &SmokeTestResult{
			fmt.Sprintf("%s Healthcheck had nothing to run. Returning empty success response..", extScc),
			shim.OK,
		}
		payload, err := json.Marshal(defaultResult)
		if err != nil {
			return shim.Error(fmt.Sprintf("Error occurred while Marshalling: %s", err))
		}
		return shim.Success(payload)
	}
}
SmokeTest is a health check function that returns the status of Snap it is called up
package healthcheck
import (
	"encoding/json"
	"fmt"
	"github.com/hyperledger/fabric/core/chaincode/shim"
	pb "github.com/hyperledger/fabric/protos/peer"
)
var logger = shim.NewLogger("healthcheck")
const (
	FMPScc = "FMPScc"
	ConfigurationScc = "ConfigurationScc"
	TxDelegationScc = "TxDelegationScc"
)
type SmokeTestResult struct {
	Message string `json:"message,omitempty"`
	Status  int    `json:"status,omitempty"`
}