...
1
2
3
4
19
20 package main
21
22 import (
23 "log"
24 "os/exec"
25 "strconv"
26 "time"
27 )
28
29 var (
30 consumeCPUBinary = "./consume-cpu/consume-cpu.exe"
31 consumeMemBinary = "testlimit.exe"
32 )
33
34
35 func ConsumeMem(megabytes int, durationSec int) {
36 log.Printf("ConsumeMem megabytes: %v, durationSec: %v", megabytes, durationSec)
37 megabytesString := strconv.Itoa(megabytes)
38 durationSecString := strconv.Itoa(durationSec)
39
40 consumeMem := exec.Command(consumeMemBinary, "-accepteula", "-d", megabytesString, "-e", "0", durationSecString, "-c", "1")
41 err := consumeMem.Start()
42 if err != nil {
43 log.Printf("Error while consuming memory: %v", err)
44 return
45 }
46
47
48 time.AfterFunc(time.Duration(durationSec)*time.Second, func() {
49 if err := consumeMem.Process.Kill(); err != nil {
50 log.Printf("Could not kill testlimit process! Error: %v", err)
51 }
52 })
53 }
54
View as plain text