diff options
author | John Ericson <Ericson2314@Yahoo.com> | 2017-02-09 16:09:47 -0500 |
---|---|---|
committer | John Ericson <Ericson2314@Yahoo.com> | 2017-04-17 17:13:01 -0400 |
commit | 8c99aab3ea4a9ddbd3918282da7861e674b4e7c4 (patch) | |
tree | 5c8a663c775e02ad7c7c714d89095f3cd500e0a0 /lib/tests/systems.nix | |
parent | fffcee35f9b2042d4edc5dccb3379972e03ffd84 (diff) |
lib: Fix system parsing, and use for doubles lists
The old hard-coded lists are now used to test system parsing. In the process, make an `assertTrue` in release lib for eval tests; also use it in release-cross
Diffstat (limited to 'lib/tests/systems.nix')
-rw-r--r-- | lib/tests/systems.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix new file mode 100644 index 0000000000000..02e316c19fe31 --- /dev/null +++ b/lib/tests/systems.nix @@ -0,0 +1,31 @@ +# We assert that the new algorithmic way of generating these lists matches the +# way they were hard-coded before. +# +# One might think "if we exhaustively test, what's the point of procedurally +# calculating the lists anyway?". The answer is one can mindlessly update these +# tests as new platforms become supported, and then just give the diff a quick +# sanity check before committing :). +{ lib, assertTrue }: + +with lib.systems.doubles; + +let mseteq = x: y: lib.sort lib.lessThan x == lib.sort lib.lessThan y; in + +{ + all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos)); + + arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]); + i686 = assertTrue (mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-cygwin" ]); + mips = assertTrue (mseteq mips [ "mips64el-linux" ]); + x86_64 = assertTrue (mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" ]); + + cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]); + darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]); + freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]); + gnu = assertTrue (mseteq gnu (linux /* ++ hurd ++ kfreebsd ++ ... */)); + illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]); + linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mips64el-linux" ]); + netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]); + openbsd = assertTrue (mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]); + unix = assertTrue (mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos)); +} |