xref: /openbsd-src/gnu/usr.bin/perl/os2/OS2/OS2-REXX/t/rx_vrexx.t (revision b39c515898423c8d899e35282f4b395f7cad3298)
1*b39c5158SmillertBEGIN {
2*b39c5158Smillert    chdir 't' if -d 't/lib';
3*b39c5158Smillert    @INC = '../lib' if -d 'lib';
4*b39c5158Smillert    require Config; import Config;
5*b39c5158Smillert    if (-d 'lib' and $Config{'extensions'} !~ /\bOS2(::|\/)REXX\b/) {
6*b39c5158Smillert	print "1..0 # skipped: OS2::REXX not built\n";
7*b39c5158Smillert	exit 0;
8*b39c5158Smillert    }
9*b39c5158Smillert    if (defined $ENV{PERL_TEST_NOVREXX}) {
10*b39c5158Smillert	print "1..0 # skipped: request via PERL_TEST_NOVREXX\n";
11*b39c5158Smillert	exit 0;
12*b39c5158Smillert    }
13*b39c5158Smillert}
14*b39c5158Smillert
15*b39c5158Smillertuse OS2::REXX;
16*b39c5158Smillert
17*b39c5158Smillert$name = "VREXX";
18*b39c5158Smillert$path = $ENV{LIBPATH} || $ENV{PATH} or die;
19*b39c5158Smillertforeach $dir (split(';', $path)) {
20*b39c5158Smillert  next unless -f "$dir/$name.DLL";
21*b39c5158Smillert  $found = "$dir/$name.DLL";
22*b39c5158Smillert  print "# found at `$found'\n";
23*b39c5158Smillert  last;
24*b39c5158Smillert}
25*b39c5158Smillert$found or print "1..0 # skipped: cannot find $name.DLL\n" and exit;
26*b39c5158Smillert
27*b39c5158Smillertprint "1..10\n";
28*b39c5158Smillert
29*b39c5158SmillertREXX_call {
30*b39c5158Smillert  $vrexx = DynaLoader::dl_load_file($found) or die "not ok 1\n# load\n";
31*b39c5158Smillert  print "ok 1\n";
32*b39c5158Smillert  $vinit   = DynaLoader::dl_find_symbol($vrexx, "VINIT")   or die "find vinit";
33*b39c5158Smillert  print "ok 2\n";
34*b39c5158Smillert  $vexit   = DynaLoader::dl_find_symbol($vrexx, "VEXIT")   or die "find vexit";
35*b39c5158Smillert  print "ok 3\n";
36*b39c5158Smillert  $vmsgbox = DynaLoader::dl_find_symbol($vrexx, "VMSGBOX") or die "find vmsgbox";
37*b39c5158Smillert  print "ok 4\n";
38*b39c5158Smillert  $vversion= DynaLoader::dl_find_symbol($vrexx, "VGETVERSION") or die "find vgetversion";
39*b39c5158Smillert  print "ok 5\n";
40*b39c5158Smillert
41*b39c5158Smillert  $result = OS2::REXX::_call("VInit", $vinit) or die "VInit";
42*b39c5158Smillert  print "ok 6\n";
43*b39c5158Smillert  print "# VInit: $result\n";
44*b39c5158Smillert
45*b39c5158Smillert  OS2::REXX::_set("MBOX.0" => 4,
46*b39c5158Smillert  	        "MBOX.1" => "Perl VREXX Access Test",
47*b39c5158Smillert  	        "MBOX.2" => "",
48*b39c5158Smillert  	        "MBOX.3" => "(C) Andreas Kaiser",
49*b39c5158Smillert  	        "MBOX.4" => "December 1994")
50*b39c5158Smillert  	or die "set var";
51*b39c5158Smillert  print "ok 7\n";
52*b39c5158Smillert
53*b39c5158Smillert  $result = OS2::REXX::_call("VGetVersion", $vversion) or die "VMsgBox";
54*b39c5158Smillert  print "ok 8\n";
55*b39c5158Smillert  print "# VGetVersion: $result\n";
56*b39c5158Smillert
57*b39c5158Smillert  $result = OS2::REXX::_call("VMsgBox", $vmsgbox, "", "Perl", "MBOX", 1) or die "VMsgBox";
58*b39c5158Smillert  print "ok 9\n";
59*b39c5158Smillert  print "# VMsgBox: $result\n";
60*b39c5158Smillert
61*b39c5158Smillert  OS2::REXX::_call("VExit", $vexit);
62*b39c5158Smillert  print "ok 10\n";
63*b39c5158Smillert};
64