Check that configure generates the file in the right dir when `--file` is passed: $ ./test.exe configure -v --file app/config.ml test.exe: [INFO] run: configure: { "args" = { "context" = ; "config_file" = app/config.ml; "output" = None; "dry_run" = false }; "depext" = true } test.exe: [WARNING] Skipping version check, since our_version ("1.0~test") fails to parse: only digits and . allowed in version test.exe: [INFO] Generating: app/test/dune-workspace.config (base) test.exe: [INFO] Generating: dune-project (base) test.exe: [INFO] Generating: app/dune.config (base) test.exe: [INFO] Preserving arguments in app/test/context: [|"./test.exe"; "configure"; "-v"; "--file"; "app/config.ml"|] test.exe: [INFO] Set-up config skeleton. config.exe: [INFO] reading cache app/test/context config.exe: [INFO] Name noop Keys vote=cat (default), warn_error=false (default) config.exe: [INFO] Generating: noop.opam (opam) config.exe: [INFO] in dir { "context" = ; "config_file" = app/config.ml; "output" = None; "dry_run" = false } config.exe: [INFO] Generating: main.ml (main file) config.exe: [INFO] Generating: dune.build (dune.build) config.exe: [INFO] Generating: dune-workspace (dune-workspace) config.exe: [INFO] Generating: dune-project (dune-project) config.exe: [INFO] Generating: dune (dune.dist) $ ls -a app/ . .. app.ml config.ml dist dune dune.build dune.config test $ ls -a app/test . .. context dune-workspace.config main.ml noop.opam vote warn_error $ ./test.exe clean --file app/config.ml Check that configure create the correct context file: $ ./test.exe configure --file=app/config.ml test.exe: [WARNING] Skipping version check, since our_version ("1.0~test") fails to parse: only digits and . allowed in version $ cat app/test/context configure --file=app/config.ml $ rm -rf custom_build_ $ ./test.exe configure --file=app/config.ml test.exe: [WARNING] Skipping version check, since our_version ("1.0~test") fails to parse: only digits and . allowed in version $ cat app/test/context configure --file=app/config.ml $ ./test.exe clean --file=app/config.ml Check that `test help configure` and `test configure --help` have the same output. $ ./test.exe help configure --file=app/config.ml --help=plain > h1 $ ./test.exe configure --help=plain --file=app/config.ml > h2 $ ./help.exe diff h1 h2 Check that `test help configure` works when no config.ml file is present. $ ./test.exe configure --help=plain > h0 $ ./help.exe show h0 SYNOPSIS | xargs test configure [OPTION]… Check that errors are reported correcty: $ ./test.exe configure a b c --file=app/config.ml 2>&1 | tr -d \' test.exe: [WARNING] Skipping version check, since our_version ("1.0~test") fails to parse: only digits and . allowed in version Usage: test configure [--help] [OPTION]… test: too many arguments, dont know what to do with a, b, c