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