MCPcopy Create free account
hub / github.com/crytic/attacknet / StartTestSuite

Function StartTestSuite

pkg/runtime.go:16–91  ·  view source on GitHub ↗
(ctx context.Context, cfg *types.ConfigParsed)

Source from the content-addressed store, hash-verified

14)
15
16func StartTestSuite(ctx context.Context, cfg *types.ConfigParsed) error {
17 enclave, err := runtime.SetupEnclave(ctx, cfg)
18 if err != nil {
19 return err
20 }
21
22 kubeClient, err := kubernetes.CreateKubeClient(enclave.Namespace)
23 if err != nil {
24 return err
25 }
26
27 // create chaos-mesh client
28 log.Infof("Creating a chaos-mesh client")
29 chaosClient, err := chaos_mesh.CreateClient(enclave.Namespace, kubeClient)
30 if err != nil {
31 // grafanaTunnel.Cleanup(true)
32 return err
33 }
34
35 // standby for timer
36 log.Infof(
37 "Waiting %d seconds before starting fault injection",
38 cfg.AttacknetConfig.WaitBeforeInjectionSeconds,
39 )
40 time.Sleep(time.Duration(cfg.AttacknetConfig.WaitBeforeInjectionSeconds) * time.Second)
41
42 log.Infof("Running %d tests", len(cfg.TestConfig.Tests))
43
44 var testArtifacts []*artifacts.TestArtifact
45
46 for i, test := range cfg.TestConfig.Tests {
47 log.Infof("Running test (%d/%d): '%s'", i+1, len(cfg.TestConfig.Tests), test.TestName)
48 executor := test_executor.CreateTestExecutor(chaosClient, test)
49
50 err = executor.RunTestPlan(ctx)
51 if err != nil {
52 log.Errorf("Error while running test #%d", i+1)
53 return err
54 } else {
55 log.Infof("Test #%d steps completed.", i+1)
56 }
57
58 if test.HealthConfig.EnableChecks {
59 log.Info("Starting health checks")
60 podsUnderTest, err := executor.GetPodsUnderTest()
61 if err != nil {
62 return err
63 }
64
65 hc, err := health.BuildHealthChecker(kubeClient, podsUnderTest, test.HealthConfig)
66 if err != nil {
67 return err
68 }
69 results, err := hc.RunChecks(ctx)
70 if err != nil {
71 return err
72 }
73 testArtifact := artifacts.BuildTestArtifact(results, podsUnderTest, test)

Callers 1

mainFunction · 0.92

Calls 10

SetupEnclaveFunction · 0.92
CreateKubeClientFunction · 0.92
CreateTestExecutorFunction · 0.92
BuildHealthCheckerFunction · 0.92
BuildTestArtifactFunction · 0.92
SerializeTestArtifactsFunction · 0.92
RunTestPlanMethod · 0.80
GetPodsUnderTestMethod · 0.80
RunChecksMethod · 0.80
DestroyMethod · 0.80

Tested by

no test coverage detected