aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2020-05-28 01:24:49 +0200
committerRobert Helgesson <robert@rycee.net>2020-05-28 01:37:27 +0200
commit8bbefa77f7e95c80005350aeac6fe425ce47c288 (patch)
treecfff10e2b832121c36e8ef737429e18d4c45100d
parent3a80ece9fa0de388ad27503059f7856c9315d491 (diff)
tests: perform code formatting test in test suite
This should improve visibility when CI job fails due to bad formatting.
-rw-r--r--.gitlab-ci.yml1
-rw-r--r--.travis.yml1
-rw-r--r--tests/default.nix1
-rw-r--r--tests/meta/default.nix1
-rw-r--r--tests/meta/formatting.nix27
5 files changed, 29 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6a227fa59bd..2c5c5a67ffe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,7 +11,6 @@ stages:
Run tests:
stage: test
script:
- - ./format -c && echo Format is OK
- nix-shell --pure tests -A run.files-text
rules:
- if: $CI_COMMIT_BRANCH == "master"
diff --git a/.travis.yml b/.travis.yml
index 039551c4274..c2599e9240d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,6 +5,5 @@ os:
- osx
script:
- - ./format -c
- nix-shell . -A install
- nix-shell --pure --max-jobs 10 tests -A run.all
diff --git a/tests/default.nix b/tests/default.nix
index d7f5222c8b7..3143eb9ea06 100644
--- a/tests/default.nix
+++ b/tests/default.nix
@@ -59,6 +59,7 @@ import nmt {
./modules/programs/zsh
./modules/xresources
] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
+ ./meta # Suffices to run on one platform.
./modules/misc/debug
./modules/misc/pam
./modules/misc/xdg
diff --git a/tests/meta/default.nix b/tests/meta/default.nix
new file mode 100644
index 00000000000..0f02fcfb453
--- /dev/null
+++ b/tests/meta/default.nix
@@ -0,0 +1 @@
+{ meta-formatting = ./formatting.nix; }
diff --git a/tests/meta/formatting.nix b/tests/meta/formatting.nix
new file mode 100644
index 00000000000..2d5800c53cd
--- /dev/null
+++ b/tests/meta/formatting.nix
@@ -0,0 +1,27 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ pinnedNixpkgs = builtins.fetchTarball {
+ url =
+ "https://github.com/NixOS/nixpkgs/archive/05f0934825c2a0750d4888c4735f9420c906b388.tar.gz";
+ sha256 = "1g8c2w0661qn89ajp44znmwfmghbbiygvdzq0rzlvlpdiz28v6gy";
+ };
+
+ pinnedPkgs = import pinnedNixpkgs { };
+
+in {
+ config = {
+ nmt.script = ''
+ PATH="${with pinnedPkgs; lib.makeBinPath [ findutils nixfmt ]}:$PATH"
+ cd ${../..}
+ if ! ${pkgs.runtimeShell} format -c; then
+ fail "${''
+ Expected source code to be formatted with nixfmt but it was not.
+ This error can be resolved by running the './format' in the project root directory.''}"
+ fi
+ '';
+ };
+}