diff options
author | Flu0r1ne <flur01ne@flu0r1ne.net> | 2021-09-05 13:38:27 -0500 |
---|---|---|
committer | Flu0r1ne <flur01ne@flu0r1ne.net> | 2021-09-05 13:38:27 -0500 |
commit | 7f3a568983470016bf99baafb4db47c8223c0494 (patch) | |
tree | 136c095e2cc68176e80eb59c38120165e1b739c9 | |
parent | 2ccad1c9bc42093fb341faed26ea41c1463fcfae (diff) | |
download | planr-7f3a568983470016bf99baafb4db47c8223c0494.tar.xz planr-7f3a568983470016bf99baafb4db47c8223c0494.zip |
Preserve original ordering
-rw-r--r-- | fs.go | 1 | ||||
-rw-r--r-- | runner.go | 3 | ||||
-rw-r--r-- | testcase.go | 9 |
3 files changed, 13 insertions, 0 deletions
@@ -77,6 +77,7 @@ func collectUnits(root string, cfgs []AdapterConfig) []TestCase { for i := range tcs { tcs[i].Cname = Cname(root, tcs[i].Path) + tcs[i].readIdx = i } return tcs @@ -4,6 +4,7 @@ import ( "log" "os" "path" + "sort" ) type Runner struct { @@ -128,6 +129,8 @@ func (r Runner) Evaluate(tcs []TestCase) []TestResult { for range testSets { results = append(results, (<-c)...) } + + sort.Sort(ByReadIdx(results)) safeCd(r.dirs.Config()) diff --git a/testcase.go b/testcase.go index 19f1e58..d1db292 100644 --- a/testcase.go +++ b/testcase.go @@ -45,8 +45,17 @@ type TestCase struct { Cname string Config TestCaseConfig + + // Reorder according to original read order after concurrent operation + readIdx int } func (tc TestCase) AdapterConfig() InheritableConfig { return tc.Config.adapters_[*tc.Config.Adapter] } + +type ByReadIdx []TestResult + +func (a ByReadIdx) Len() int { return len(a) } +func (a ByReadIdx) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a ByReadIdx) Less(i, j int) bool { return a[i].Tc.readIdx < a[j].Tc.readIdx } |