@@ -29,6 +29,7 @@ import (
2929 "github.com/crc-org/crc/v2/test/extended/util"
3030 "github.com/cucumber/godog"
3131 "github.com/shirou/gopsutil/v4/cpu"
32+ "github.com/shirou/gopsutil/v4/mem"
3233 "github.com/spf13/pflag"
3334)
3435
@@ -267,6 +268,9 @@ func InitializeScenario(s *godog.ScenarioContext) {
267268 if err := getCPUdata ("Before start" ); err != nil {
268269 fmt .Printf ("Failed to collect CPU data: %v\n " , err )
269270 }
271+ if err := getMemoryData ("Before start" ); err != nil {
272+ fmt .Printf ("Failed to collect memory data: %v\n " , err )
273+ }
270274 }
271275 }
272276
@@ -577,6 +581,8 @@ func InitializeScenario(s *godog.ScenarioContext) {
577581 EnsureVMPartitionSizeCorrect )
578582 s .Step (`^get cpu data "([^"]*)"` ,
579583 getCPUdata )
584+ s .Step (`^get memory data "([^"]*)"` ,
585+ getMemoryData )
580586
581587 s .After (func (ctx context.Context , _ * godog.Scenario , err error ) (context.Context , error ) {
582588
@@ -1327,3 +1333,21 @@ func getCPUdata(content string) error {
13271333 file := filepath .Join (wd , "../test-results/cpu-consume.txt" )
13281334 return util .WriteToFile (data , file )
13291335}
1336+
1337+ func getMemoryData (content string ) error {
1338+ v , err := mem .VirtualMemory ()
1339+ if err != nil {
1340+ return fmt .Errorf ("failed to get memory data: %v" , err )
1341+ }
1342+ if v == nil {
1343+ return fmt .Errorf ("no memory data available" )
1344+ }
1345+ data := fmt .Sprintf ("%s, UsedPercent: %.2f%%, Free: %d MiB\n " , content , v .UsedPercent , v .Free / 1024 / 1024 )
1346+
1347+ wd , err := os .Getwd ()
1348+ if err != nil {
1349+ return fmt .Errorf ("failed to get working directory: %v" , err )
1350+ }
1351+ file := filepath .Join (wd , "../test-results/memory-consume.txt" )
1352+ return util .WriteToFile (data , file )
1353+ }
0 commit comments