test/e2e: write timings directly to file

There is no need to buffer them all into an array then write them once
at the end. Just write directly to the file.

Fixes 

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger
2023-07-04 15:12:46 +02:00
parent f33a3bdc35
commit c20612babc

@ -56,7 +56,6 @@ type PodmanTestIntegration struct {
SignaturePolicyPath string SignaturePolicyPath string
CgroupManager string CgroupManager string
Host HostOS Host HostOS
Timings []string
TmpDir string TmpDir string
RemoteStartErr error RemoteStartErr error
} }
@ -82,9 +81,6 @@ type testResultsSortedLength struct{ testResultsSorted }
func (a testResultsSorted) Less(i, j int) bool { return a[i].length < a[j].length } func (a testResultsSorted) Less(i, j int) bool { return a[i].length < a[j].length }
var testResults []testResult
var testResultsMutex sync.Mutex
func TestMain(m *testing.M) { func TestMain(m *testing.M) {
if reexec.Init() { if reexec.Init() {
return return
@ -107,6 +103,7 @@ var (
err error err error
podmanTest *PodmanTestIntegration podmanTest *PodmanTestIntegration
safeIPOctets [2]uint8 safeIPOctets [2]uint8
timingsFile *os.File
_ = BeforeEach(func() { _ = BeforeEach(func() {
tempdir, err = CreateTempDirInTempDir() tempdir, err = CreateTempDirInTempDir()
@ -188,6 +185,9 @@ var _ = SynchronizedBeforeSuite(func() []byte {
cwd, _ := os.Getwd() cwd, _ := os.Getwd()
INTEGRATION_ROOT = filepath.Join(cwd, "../../") INTEGRATION_ROOT = filepath.Join(cwd, "../../")
LockTmpDir = string(data) LockTmpDir = string(data)
timingsFile, err = os.Create(fmt.Sprintf("%s/timings-%d", LockTmpDir, GinkgoParallelProcess()))
Expect(err).ToNot(HaveOccurred())
}) })
func (p *PodmanTestIntegration) Setup() { func (p *PodmanTestIntegration) Setup() {
@ -196,13 +196,8 @@ func (p *PodmanTestIntegration) Setup() {
} }
var _ = SynchronizedAfterSuite(func() { var _ = SynchronizedAfterSuite(func() {
f, err := os.Create(fmt.Sprintf("%s/timings-%d", LockTmpDir, GinkgoParallelProcess())) timingsFile.Close()
Expect(err).ToNot(HaveOccurred()) timingsFile = nil
defer f.Close()
for _, result := range testResults {
_, err := f.WriteString(fmt.Sprintf("%s\t\t%f\n", result.name, result.length))
Expect(err).ToNot(HaveOccurred(), "write timings")
}
}, },
func() { func() {
testTimings := make(testResultsSorted, 0, 2000) testTimings := make(testResultsSorted, 0, 2000)
@ -467,9 +462,8 @@ func (p *PodmanTestIntegration) InspectContainer(name string) []define.InspectCo
func processTestResult(r SpecReport) { func processTestResult(r SpecReport) {
tr := testResult{length: r.RunTime.Seconds(), name: r.FullText()} tr := testResult{length: r.RunTime.Seconds(), name: r.FullText()}
testResultsMutex.Lock() _, err := timingsFile.WriteString(fmt.Sprintf("%s\t\t%f\n", tr.name, tr.length))
testResults = append(testResults, tr) Expect(err).ToNot(HaveOccurred(), "write timings")
testResultsMutex.Unlock()
} }
func GetPortLock(port string) *lockfile.LockFile { func GetPortLock(port string) *lockfile.LockFile {