This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,3 @@
(alias
(name default)
(deps (alias_rec runtest)))

View file

@ -0,0 +1 @@
(lang dune 1.8)

View file

@ -0,0 +1 @@
(executable (name priv))

View file

@ -0,0 +1,22 @@
let count_segments s ~segment =
s
|> String.split_on_char '/'
|> List.filter (fun part -> String.equal part segment)
|> List.length
let is_in_inner_build_dir s =
count_segments ~segment:"_build" s = 2
let () =
let name = Filename.basename Sys.argv.(0) in
Printf.printf "Executing priv as %s\n" name;
let path =
match Sys.getenv "PATH" with
| exception Not_found -> "<empty>"
| s ->
s
|> String.split_on_char ':'
|> List.filter is_in_inner_build_dir
|> String.concat "\n\t"
in
Printf.printf "PATH:\n\t%s\n" path

View file

@ -0,0 +1,17 @@
Nest env binaries
$ dune build
Executing priv as priv
PATH:
$TESTCASE_ROOT/_build/default/using-priv/nested/.bin
$TESTCASE_ROOT/_build/default/using-priv/.bin
$TESTCASE_ROOT/_build/install/default/bin
Executing priv as priv-renamed
PATH:
$TESTCASE_ROOT/_build/default/using-priv/nested/.bin
$TESTCASE_ROOT/_build/default/using-priv/.bin
$TESTCASE_ROOT/_build/install/default/bin
Executing priv as priv-renamed-nested
PATH:
$TESTCASE_ROOT/_build/default/using-priv/nested/.bin
$TESTCASE_ROOT/_build/default/using-priv/.bin
$TESTCASE_ROOT/_build/install/default/bin

View file

@ -0,0 +1,5 @@
(env
(_
(binaries
../priv/priv.exe
(../priv/priv.exe as priv-renamed))))

View file

@ -0,0 +1,12 @@
(env
(_
(binaries
(../../priv/priv.exe as priv-renamed-nested))))
(alias
(name runtest)
(action
(progn
(run priv)
(run priv-renamed)
(run priv-renamed-nested))))

View file

@ -0,0 +1,4 @@
(alias
(name default)
(deps (alias_rec runtest))
(action (run foo)))

View file

@ -0,0 +1 @@
(executable (name priv))

View file

@ -0,0 +1 @@
print_endline "private binary"

View file

@ -0,0 +1 @@
(executable (public_name foo))

View file

@ -0,0 +1 @@
print_endline "public binary"

View file

@ -0,0 +1,5 @@
Override public binary in env
$ dune build
private binary
public binary

View file

@ -0,0 +1,7 @@
(env
(_
(binaries (../priv/priv.exe as foo))))
(alias
(name runtest)
(action (run foo)))

View file

@ -0,0 +1,3 @@
(alias
(name default)
(deps (alias_rec runtest)))

View file

@ -0,0 +1 @@
(executable (name priv))

View file

@ -0,0 +1,22 @@
let count_segments s ~segment =
s
|> String.split_on_char '/'
|> List.filter (fun part -> String.equal part segment)
|> List.length
let is_in_inner_build_dir s =
count_segments ~segment:"_build" s = 2
let () =
let name = Filename.basename Sys.argv.(0) in
Printf.printf "Executing priv as %s\n" name;
let path =
match Sys.getenv "PATH" with
| exception Not_found -> "<empty>"
| s ->
s
|> String.split_on_char ':'
|> List.filter is_in_inner_build_dir
|> String.concat "\n\t"
in
Printf.printf "PATH:\n\t%s\n" path

View file

@ -0,0 +1,11 @@
Basic test that we can use private binaries as public ones
$ dune build
Executing priv as priv
PATH:
$TESTCASE_ROOT/_build/default/using-priv/.bin
$TESTCASE_ROOT/_build/install/default/bin
Executing priv as priv-renamed
PATH:
$TESTCASE_ROOT/_build/default/using-priv/.bin
$TESTCASE_ROOT/_build/install/default/bin

View file

@ -0,0 +1,12 @@
(env
(_
(binaries
../priv/priv.exe
(../priv/priv.exe as priv-renamed))))
(alias
(name runtest)
(action
(progn
(run priv)
(run priv-renamed))))