From 998d011e426c2f8c51946ebbc4931a464f531db9 Mon Sep 17 00:00:00 2001 From: Judson Date: Sat, 27 May 2017 15:19:34 -0700 Subject: [PATCH] Restructuring files --- .../basic.nix => bundled-common/default.nix} | 0 .../functions.nix | 0 .../gen-bin-stubs.rb | 0 .../ruby-modules/bundled-common/test.nix | 23 ++++++++++ .../ruby-modules/bundler-env/default.nix | 4 +- .../ruby-modules/bundler-env/test.nix | 44 +++---------------- pkgs/development/ruby-modules/runtests.sh | 6 +++ .../{bundler-env => testing}/assertions.nix | 0 .../ruby-modules/testing/driver.nix | 20 +++++++++ .../{bundler-env => testing}/runtests.sh | 0 .../{bundler-env => testing}/stubs.nix | 0 .../{bundler-env => testing}/tap-support.nix | 0 .../{bundler-env => testing}/testing.nix | 0 13 files changed, 56 insertions(+), 41 deletions(-) rename pkgs/development/ruby-modules/{bundler-env/basic.nix => bundled-common/default.nix} (100%) rename pkgs/development/ruby-modules/{bundler-env => bundled-common}/functions.nix (100%) rename pkgs/development/ruby-modules/{bundler-env => bundled-common}/gen-bin-stubs.rb (100%) create mode 100644 pkgs/development/ruby-modules/bundled-common/test.nix create mode 100755 pkgs/development/ruby-modules/runtests.sh rename pkgs/development/ruby-modules/{bundler-env => testing}/assertions.nix (100%) create mode 100644 pkgs/development/ruby-modules/testing/driver.nix rename pkgs/development/ruby-modules/{bundler-env => testing}/runtests.sh (100%) rename pkgs/development/ruby-modules/{bundler-env => testing}/stubs.nix (100%) rename pkgs/development/ruby-modules/{bundler-env => testing}/tap-support.nix (100%) rename pkgs/development/ruby-modules/{bundler-env => testing}/testing.nix (100%) diff --git a/pkgs/development/ruby-modules/bundler-env/basic.nix b/pkgs/development/ruby-modules/bundled-common/default.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/basic.nix rename to pkgs/development/ruby-modules/bundled-common/default.nix diff --git a/pkgs/development/ruby-modules/bundler-env/functions.nix b/pkgs/development/ruby-modules/bundled-common/functions.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/functions.nix rename to pkgs/development/ruby-modules/bundled-common/functions.nix diff --git a/pkgs/development/ruby-modules/bundler-env/gen-bin-stubs.rb b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/gen-bin-stubs.rb rename to pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb diff --git a/pkgs/development/ruby-modules/bundled-common/test.nix b/pkgs/development/ruby-modules/bundled-common/test.nix new file mode 100644 index 00000000000..b24a620ed50 --- /dev/null +++ b/pkgs/development/ruby-modules/bundled-common/test.nix @@ -0,0 +1,23 @@ +{ stdenv, writeText, lib, ruby, defaultGemConfig, callPackage, test, stubs, should }@defs: +let + testConfigs = { + inherit lib; + gemConfig = defaultGemConfig; + }; + functions = (import ./functions.nix testConfigs); +in + builtins.concatLists [ + (test.run "Filter empty gemset" {} (set: functions.filterGemset {inherit ruby; groups = ["default"]; } set == {})) + ( let gemSet = { test = { groups = ["x" "y"]; }; }; + in + test.run "Filter matches a group" gemSet (set: functions.filterGemset {inherit ruby; groups = ["y" "z"];} set == gemSet)) + ( let gemSet = { test = { platforms = []; }; }; + in + test.run "Filter matches empty platforms list" gemSet (set: functions.filterGemset {inherit ruby; groups = [];} set == gemSet)) + ( let gemSet = { test = { platforms = [{engine = ruby.rubyEngine; version = ruby.version.majMin;}]; }; }; + in + test.run "Filter matches on platform" gemSet (set: functions.filterGemset {inherit ruby; groups = [];} set == gemSet)) + ( let gemSet = { test = { groups = ["x" "y"]; }; }; + in + test.run "Filter excludes based on groups" gemSet (set: functions.filterGemset {inherit ruby; groups = ["a" "b"];} set == {})) + ] diff --git a/pkgs/development/ruby-modules/bundler-env/default.nix b/pkgs/development/ruby-modules/bundler-env/default.nix index 68267a4aead..46d9e99f671 100644 --- a/pkgs/development/ruby-modules/bundler-env/default.nix +++ b/pkgs/development/ruby-modules/bundler-env/default.nix @@ -24,7 +24,7 @@ }@args: let - inherit (import ./functions.nix {inherit lib ruby gemConfig groups; }) genStubsScript; + inherit (import ../bundled-common/functions.nix {inherit lib ruby gemConfig groups; }) genStubsScript; drvName = if name != null then lib.traceVal name @@ -43,7 +43,7 @@ let if gemset == null then gemdir + "/gemset.nix" else gemset; - basicEnv = (callPackage ./basic.nix {}) (args // { inherit pname name gemdir; + basicEnv = (callPackage ../bundled-common {}) (args // { inherit pname name gemdir; gemfile = gemfile'; lockfile = lockfile'; gemset = gemset'; diff --git a/pkgs/development/ruby-modules/bundler-env/test.nix b/pkgs/development/ruby-modules/bundler-env/test.nix index e49c4fd93f2..63da7044c0c 100644 --- a/pkgs/development/ruby-modules/bundler-env/test.nix +++ b/pkgs/development/ruby-modules/bundler-env/test.nix @@ -1,28 +1,9 @@ -/* -Run with: -nix-build -E 'with import { }; callPackage ./test.nix {}' --show-trace; and cat result - -Confusingly, the ideal result ends with something like: -error: build of ‘/nix/store/3245f3dcl2wxjs4rci7n069zjlz8qg85-test-results.tap.drv’ failed -*/ -{ stdenv, writeText, lib, ruby, defaultGemConfig, callPackage }@defs: +{ stdenv, writeText, lib, ruby, defaultGemConfig, callPackage, test, stubs, should}@defs: let - test = import ./testing.nix; - tap = import ./tap-support.nix; - stubs = import ./stubs.nix defs; - should = import ./assertions.nix { inherit test lib; }; - - basicEnv = callPackage ./basic.nix stubs; bundlerEnv = callPackage ./default.nix stubs // { - inherit basicEnv; + basicEnv = callPackage ../bundled-common stubs; }; - testConfigs = { - inherit lib; - gemConfig = defaultGemConfig; - }; - functions = (import ./functions.nix testConfigs); - justName = bundlerEnv { name = "test-0.1.2"; gemset = ./test/gemset.nix; @@ -35,21 +16,8 @@ let gemfile = ./test/Gemfile; lockfile = ./test/Gemfile.lock; }; - - results = builtins.concatLists [ - (test.run "Filter empty gemset" {} (set: functions.filterGemset {inherit ruby; groups = ["default"]; } set == {})) - ( let gemSet = { test = { groups = ["x" "y"]; }; }; - in - test.run "Filter matches a group" gemSet (set: functions.filterGemset {inherit ruby; groups = ["y" "z"];} set == gemSet)) - ( let gemSet = { test = { platforms = []; }; }; - in - test.run "Filter matches empty platforms list" gemSet (set: functions.filterGemset {inherit ruby; groups = [];} set == gemSet)) - ( let gemSet = { test = { platforms = [{engine = ruby.rubyEngine; version = ruby.version.majMin;}]; }; }; - in - test.run "Filter matches on platform" gemSet (set: functions.filterGemset {inherit ruby; groups = [];} set == gemSet)) - ( let gemSet = { test = { groups = ["x" "y"]; }; }; - in - test.run "Filter excludes based on groups" gemSet (set: functions.filterGemset {inherit ruby; groups = ["a" "b"];} set == {})) +in + builtins.concatLists [ (test.run "bundlerEnv { name }" justName { name = should.equal "test-0.1.2"; }) @@ -62,6 +30,4 @@ let postBuild = should.havePrefix "/nix/store"; } ]) - ]; -in - writeText "test-results.tap" (tap.output results) + ] diff --git a/pkgs/development/ruby-modules/runtests.sh b/pkgs/development/ruby-modules/runtests.sh new file mode 100755 index 00000000000..d0faaf971db --- /dev/null +++ b/pkgs/development/ruby-modules/runtests.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -o xtrace +pwd +find . -name text.nix +testfiles=$(find . -name test.nix) +nix-build -E "with import {}; callPackage testing/driver.nix { testFiles = [ $testfiles ]; }" --show-trace && cat result diff --git a/pkgs/development/ruby-modules/bundler-env/assertions.nix b/pkgs/development/ruby-modules/testing/assertions.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/assertions.nix rename to pkgs/development/ruby-modules/testing/assertions.nix diff --git a/pkgs/development/ruby-modules/testing/driver.nix b/pkgs/development/ruby-modules/testing/driver.nix new file mode 100644 index 00000000000..65e7c8d4416 --- /dev/null +++ b/pkgs/development/ruby-modules/testing/driver.nix @@ -0,0 +1,20 @@ +/* +Run with: +nix-build -E 'with import { }; callPackage ./test.nix {}' --show-trace; and cat result + +Confusingly, the ideal result ends with something like: +error: build of ‘/nix/store/3245f3dcl2wxjs4rci7n069zjlz8qg85-test-results.tap.drv’ failed +*/ +{ writeText, lib, callPackage, testFiles, stdenv, ruby }@defs: +let + testTools = rec { + test = import ./testing.nix; + stubs = import ./stubs.nix defs; + should = import ./assertions.nix { inherit test lib; }; + }; + + tap = import ./tap-support.nix; + + results = builtins.concatLists (map (file: callPackage file testTools) testFiles); +in + writeText "test-results.tap" (tap.output results) diff --git a/pkgs/development/ruby-modules/bundler-env/runtests.sh b/pkgs/development/ruby-modules/testing/runtests.sh similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/runtests.sh rename to pkgs/development/ruby-modules/testing/runtests.sh diff --git a/pkgs/development/ruby-modules/bundler-env/stubs.nix b/pkgs/development/ruby-modules/testing/stubs.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/stubs.nix rename to pkgs/development/ruby-modules/testing/stubs.nix diff --git a/pkgs/development/ruby-modules/bundler-env/tap-support.nix b/pkgs/development/ruby-modules/testing/tap-support.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/tap-support.nix rename to pkgs/development/ruby-modules/testing/tap-support.nix diff --git a/pkgs/development/ruby-modules/bundler-env/testing.nix b/pkgs/development/ruby-modules/testing/testing.nix similarity index 100% rename from pkgs/development/ruby-modules/bundler-env/testing.nix rename to pkgs/development/ruby-modules/testing/testing.nix