README.md 1.73 KB
Newer Older
Valentin Reis's avatar
Valentin Reis committed
1
#### integration testing
Valentin Reis's avatar
Valentin Reis committed
2

Valentin Reis's avatar
Valentin Reis committed
3
This repository contains integration tests that validate the argo stack.
Valentin Reis's avatar
Valentin Reis committed
4 5 6 7

It leverages the argopkgs repo, but overrides some sources in it with
their master branch counterparts. see file `default.nix` for details.

8
The intended usage is to override (some of) the source(s) with WIP
9
version(s), as part of development or continuous integration. This
10 11
gitlab CI snippets shows how to do this on a nix-enabled runner. Mind
that this setup tracks argotest master.
Valentin Reis's avatar
Valentin Reis committed
12

13
``` {.yml}
Valentin Reis's avatar
Valentin Reis committed
14 15 16 17 18 19
integration.test:
  stage: test
  script:
    - BUILD=$PWD
    - git clone https://xgitlab.cels.anl.gov/argo/argotest.git
    - cd argotest
Valentin Reis's avatar
Valentin Reis committed
20 21 22 23 24 25 26 27 28 29
    - nix-shell -A test --run "./argotk.hs helloworld" --arg nrm-src ../.
  artifacts:
    paths:
      - argotest/cmd_err.log
      - argotest/cmd_out.log
      - argotest/daemon_out.log
      - argotest/daemon_out.log
      - argotest/nrm.log
      - argotest/time.log
    expire_in: 1 week
Valentin Reis's avatar
Valentin Reis committed
30 31 32 33 34 35
  except:
    - /^wip\/.*/
    - /^WIP\/.*/
  tags:
    - integration
```
36 37

Standalone usage: example with the nrm source in `../`.
38 39

``` {.bash}
40
nix-shell -A test --arg nrm-src ../nrm
41 42 43 44 45 46 47 48 49
nix-shell $ ./argotk.hs --help
```

Output:

``` {.txt}
Usage: argotk.hs COMMAND

Available options:
50
  COMMAND                  Type of action to run
51 52 53
  -h,--help                Show this help text

Available commands:
54 55 56 57 58 59 60
  clean                    Clean sockets, logfiles.
  daemon                   Set up and launch the daemon in synchronous mode,
                           with properly cleaned sockets, logfiles.
  application              Setup stack and run an arbitrary command in a
                           container.
  helloworld               Setup stack and check that hello world app sends
                           message back to cmd.
61
```