summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib-dynlink-packed/loader.ml
blob: ce617bc0d3f48d18a9487974c598d8050f1e5fe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(* TEST

include dynlink
libraries = ""
readonly_files = "a.ml b.ml loader.ml"

* shared-libraries
** setup-ocamlc.byte-build-env
*** ocamlc.byte
flags = "-for-pack Packed"
module = "a.ml"
*** ocamlc.byte
flags = "-for-pack Packed"
module = "b.ml"
*** ocamlc.byte
program = "packed.cmo"
flags = "-pack"
all_modules = "a.cmo b.cmo"
*** ocamlc.byte
program = "${test_build_directory}/loader.byte"
flags = "-linkall"
include ocamlcommon
libraries += "dynlink"
all_modules = "loader.ml"
**** run
arguments = "packed.cmo"
exit_status = "0"
***** check-program-output
reference = "${test_source_directory}/byte.reference"

** native-dynlink
*** setup-ocamlopt.byte-build-env
**** ocamlopt.byte
flags = "-for-pack Packed"
module = "a.ml"
**** ocamlopt.byte
flags = "-for-pack Packed"
module = "b.ml"
**** ocamlopt.byte
program = "packed.cmx"
flags = "-pack"
all_modules = "a.cmx b.cmx"
**** ocamlopt.byte
program = "plugin.cmxs"
flags = "-shared"
all_modules = "packed.cmx"
**** ocamlopt.byte
program = "${test_build_directory}/loader.exe"
flags = "-linkall"
include ocamlcommon
libraries += "dynlink"
all_modules = "loader.ml"
***** run
arguments = "plugin.cmxs"
exit_status = "0"
****** check-program-output
reference = "${test_source_directory}/native.reference"
*)
let () =
  try
    Dynlink.loadfile Sys.argv.(1)
  with
  | Dynlink.Error error ->
    prerr_endline (Dynlink.error_message error)