From a0ce293db80c335eb35c89786ae63f2c2160bab8 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Tue, 1 Jun 2021 10:28:53 -0500 Subject: [PATCH] fix: ensure e2e tests are collected in order --- modules/testing/driver/kubetest.nix | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/testing/driver/kubetest.nix b/modules/testing/driver/kubetest.nix index a900ef1..9d59fe5 100644 --- a/modules/testing/driver/kubetest.nix +++ b/modules/testing/driver/kubetest.nix @@ -22,13 +22,25 @@ let '' else t.script; - tests = pkgs.linkFarm "${testing.name}-tests" ( - map - (t: { - path = toTestScript t; - name = "${t.name}_test.py"; - }) - (filter (t: t.script != null) testing.tests) + tests = let + # make sure tests are prefixed so that alphanumerical + # sorting reproduces them in the same order as they + # have been declared in the list. + seive = t: t.script != null && t.enabled; + allEligibleTests = filter seive testing.tests; + listLengthPadding = builtins.length ( + lib.stringToCharacters ( + builtins.toString ( + builtins.length allEligibleTests))); + op = + (i: t: { + path = toTestScript t; + name = let + prefix = lib.fixedWidthNumber listLengthPadding i; + in "${prefix}_${t.name}_test.py"; + }); + in pkgs.linkFarm "${testing.name}-tests" ( + lib.imap0 op allEligibleTests; ); testScript = pkgs.writeScript "test-${testing.name}.sh" ''