Skip to content

Commit

Permalink
test: reproduce dune exec -w crash with pkg management
Browse files Browse the repository at this point in the history
Signed-off-by: Antonio Nuno Monteiro <anmonteiro@gmail.com>
  • Loading branch information
anmonteiro committed Sep 27, 2024
1 parent 17071ec commit c437ca5
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions test/blackbox-tests/test-cases/pkg/gh10959.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Repro `dune exec --watch` crash with pkg management

$ . ./helpers.sh

$ mkrepo
$ add_mock_repo_if_needed


$ mkdir _multiple
$ cat >_multiple/dune-project <<EOF
> (lang dune 3.13)
> (package (name foo) (allow_empty))
> (package (name bar) (allow_empty))
> EOF

$ cat >dune-project <<EOF
> (lang dune 3.13)
> (pin
> (url file://$PWD/_multiple)
> (package (name foo))
> (package (name bar)))
> (package
> (name main)
> (depends foo bar))
> EOF

$ cat >dune <<EOF
> (executable
> (name x))
> EOF
$ cat >x.ml <<EOF
> let () = print_endline "x"
> EOF

$ dune pkg lock
Solution for dune.lock:
- bar.dev
- foo.dev

$ dune exec -w ./x.exe
File "src/dune_engine/build_system.ml", line 67, characters 11-17:
File "src/dune_engine/build_system.ml", line 67, characters 11-17: Assertion
failed
Raised at Dune_engine__Build_system.State.update_build_progress_exn in file
"src/dune_engine/build_system.ml", line 67, characters 11-23
Called from Dune_engine__Build_system.State.start_rule_exn in file
"src/dune_engine/build_system.ml" (inlined), lines 76-77, characters 4-79
Called from Dune_engine__Build_system.Exported.execute_rule_impl in file
"src/dune_engine/build_system.ml", line 462, characters 41-66
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11
Re-raised at Stdune__Exn.raise_with_backtrace in file
"otherlibs/stdune/src/exn.ml", line 38, characters 27-56
Called from Fiber__Scheduler.exec in file "vendor/fiber/src/scheduler.ml",
line 76, characters 8-11

I must not crash. Uncertainty is the mind-killer. Exceptions are the
little-death that brings total obliteration. I will fully express my cases.
Execution will pass over me and through me. And when it has gone past, I
will unwind the stack along its path. Where the cases are handled there will
be nothing. Only I will remain.
[1]

0 comments on commit c437ca5

Please sign in to comment.