From 8bbefa77f7e95c80005350aeac6fe425ce47c288 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Thu, 28 May 2020 01:24:49 +0200 Subject: [PATCH] tests: perform code formatting test in test suite This should improve visibility when CI job fails due to bad formatting. --- .gitlab-ci.yml | 1 - .travis.yml | 1 - tests/default.nix | 1 + tests/meta/default.nix | 1 + tests/meta/formatting.nix | 27 +++++++++++++++++++++++++++ 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 tests/meta/default.nix create mode 100644 tests/meta/formatting.nix diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6a227fa5..2c5c5a67 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 039551c4..c2599e92 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 d7f5222c..3143eb9e 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 00000000..0f02fcfb --- /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 00000000..2d5800c5 --- /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 + ''; + }; +}