diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/app.d | 5 | ||||
| -rw-r--r-- | source/conda.d | 2 | ||||
| -rw-r--r-- | source/merge.d | 16 | ||||
| -rw-r--r-- | source/session.d | 14 | 
4 files changed, 33 insertions, 4 deletions
diff --git a/source/app.d b/source/app.d index 68c0f47..1fc3e32 100644 --- a/source/app.d +++ b/source/app.d @@ -80,6 +80,9 @@ int main(string[] args) {          return 1;      } +    foreach (pair; session.runtime.byPair) { +        conda.env[pair.key] = session.runtime[pair.key]; +    }      conda.initialize();      if (conda.env_exists(session.delivery)) { @@ -107,7 +110,7 @@ int main(string[] args) {      if (session.run_tests) {          int failures = 0;          string testdir = buildPath(output_dir, "testdir"); -        testable_t[] pkgs = testable_packages(conda, session.conda_requirements); +        testable_t[] pkgs = testable_packages(conda, session.conda_requirements, session.test_filter_git_orgs);          foreach (pkg; pkgs) {              failures += integration_test(session, conda, testdir, pkg); diff --git a/source/conda.d b/source/conda.d index 2f4995a..9fee38f 100644 --- a/source/conda.d +++ b/source/conda.d @@ -20,7 +20,7 @@ class Conda {      public string install_prefix;      public string installer_version = "4.5.12";      public string installer_variant = "3"; -    private string[string] env; +    public string[string] env;      private string[string] env_orig;      private const string url_base = "https://repo.continuum.io";      private const string url_miniconda = join([this.url_base, "miniconda"], "/"); diff --git a/source/merge.d b/source/merge.d index f11e593..72805d6 100644 --- a/source/merge.d +++ b/source/merge.d @@ -86,7 +86,7 @@ bool env_combine(ref Session_t session, ref Conda conda) {  } -testable_t[] testable_packages(ref Conda conda, string[] inputs) { +testable_t[] testable_packages(ref Conda conda, string[] inputs, string[] orgs=[]) {      testable_t[] results;      foreach (record; dmfile(inputs)) {          Node meta; @@ -138,12 +138,24 @@ testable_t[] testable_packages(ref Conda conda, string[] inputs) {              repository = "";          } +        bool[] skips; +        foreach (git_org; orgs) { +            if (!canFind(repository, git_org)) { +                skips ~= true; +            } +        } + +        if (any(skips)) { +            writefln("Will not test package: %s", repository); +            continue; +        }          results ~= testable_t(repository, head);      }      return results;  } -auto integration_test(ref Session_t session, + +int integration_test(ref Session_t session,                        ref Conda conda,                        string outdir,                        testable_t pkg) { diff --git a/source/session.d b/source/session.d index 21a0d2f..ef2a9e7 100644 --- a/source/session.d +++ b/source/session.d @@ -30,6 +30,8 @@ struct Session_t {      string test_args = "-v";      string[] test_conda_requirements;      string[] test_pip_requirements; +    string[] test_filter_git_orgs; +    string[] test_filter_git_projects;  } @@ -130,5 +132,17 @@ Session_t getconf(string filename) {          foreach (Node v; data)              session.test_pip_requirements ~= v.as!string;      } + +    if (root.containsKey("test_filter_git_orgs")) { +        data = root["test_filter_git_orgs"]; +        foreach (Node v; data) +            session.test_filter_git_orgs ~= v.as!string; +    } + +    if (root.containsKey("test_filter_git_projects")) { +        data = root["test_filter_git_projects"]; +        foreach (Node v; data) +            session.test_filter_git_projects ~= v.as!string; +    }      return session;  }  | 
