Ticket #1360: tt1360.fperrad.patch

File tt1360.fperrad.patch, 18.1 KB (added by jkeenan, 5 years ago)

Patch applied in r42947 by François Perrad re wordspaces in paths (Win32-specific)

  • tools/install/smoke.pl

     
    6060 
    6161chdir $DESTDIR if ($DESTDIR); 
    6262 
     63sub quote { 
     64    my $exe = shift; 
     65    $exe .= '.exe' if ($^O eq 'MSWin32'); 
     66    $exe = '"' . $exe . '"' if ($exe =~ / /); 
     67    return $exe; 
     68} 
     69 
    6370my $filename; 
    6471my $exe; 
    6572my $out; 
    6673my $FH; 
    67 my $parrot = catfile($bindir, 'parrot'); 
    68 my $pirc = catfile($bindir, 'pirc'); 
    69 my $nqp = catfile($bindir, 'parrot-nqp'); 
     74my $parrot = quote(catfile($bindir, 'parrot')); 
     75my $pirc = quote(catfile($bindir, 'pirc')); 
     76my $nqp = quote(catfile($bindir, 'parrot-nqp')); 
    7077 
    7178# 
    7279# parrot executable 
    7380# 
    7481 
    75 $exe = catfile($bindir, 'pbc_merge'); 
     82$exe = quote(catfile($bindir, 'pbc_merge')); 
    7683$out = `$exe`; 
    7784ok($out =~ /^pbc_merge/, "check pbc_merge"); 
    7885 
    79 $exe = catfile($bindir, 'pbc_dump'); 
     86$exe = quote(catfile($bindir, 'pbc_dump')); 
    8087$out = `$exe`; 
    8188ok($out =~ /^pbc_dump/, "check pbc_dump"); 
    8289 
  • tools/install/smoke_languages.pl

     
    6262chdir($DESTDIR) if ($DESTDIR); 
    6363my $pwd = getcwd(); 
    6464 
     65sub quote { 
     66    my $exe = shift; 
     67    $exe .= '.exe' if ($^O eq 'MSWin32'); 
     68    $exe = '"' . $exe . '"' if ($exe =~ / /); 
     69    return $exe; 
     70} 
     71 
    6572my $filename; 
    6673my $exe; 
    6774my $out; 
    6875my $FH; 
    69 my $parrot = catfile($pwd, $bindir, 'parrot'); 
     76my $parrot = quote(catfile($pwd, $bindir, 'parrot')); 
    7077 
    7178$out = `$parrot -V`; 
    7279$out =~ m/version (\S+) built/; 
     
    8289 
    8390SKIP: 
    8491{ 
    85 skip("abc", 1) unless (-d "$pwd/$langdir/abc"); 
     92$exe = quote(catfile($pwd, $bindir, 'parrot-abc')); 
     93skip("abc", 1) unless (-d "$pwd/$langdir/abc" || -e $exe); 
    8694chdir("$pwd/$langdir/abc"); 
    8795$filename = 'test.bc'; 
    8896open $FH, '>', $filename 
    8997        or die "Can't open $filename ($!).\n"; 
    9098print $FH "1 + 2\n"; 
    9199close $FH; 
    92 $exe = catfile($pwd, $bindir, 'parrot-abc'); 
    93 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    94100$exe = "$parrot abc.pbc" unless (-e $exe); 
    95101$out = `$exe $filename`; 
    96102ok($out eq "3\n", "check abc"); 
     
    99105 
    100106SKIP: 
    101107{ 
    102 skip("Befunge", 1) unless (-d "$pwd/$langdir/befunge"); 
     108$exe = quote(catfile($pwd, $bindir, 'parrot-befunge')); 
     109skip("Befunge", 1) unless (-d "$pwd/$langdir/befunge" || -e $exe); 
    103110chdir("$pwd/$langdir/befunge"); 
    104111$filename = 'test.bef'; 
    105112open $FH, '>', $filename 
     
    117124                 > :8- ^ 
    118125CODE 
    119126close $FH; 
    120 $exe = catfile($pwd, $bindir, 'parrot-befunge'); 
    121 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    122127$exe = "$parrot befunge.pbc" unless (-e $exe); 
    123128$out = `$exe $filename`; 
    124129ok($out eq "If you can see a 4 here ->4 <- then everything is ok!\n", "check befunge"); 
     
    127132 
    128133SKIP: 
    129134{ 
    130 skip("bf", 3) unless (-d "$pwd/$langdir/bf"); 
     135$exe = quote(catfile($pwd, $bindir, 'parrot-bf')); 
     136skip("bf", 3) unless (-d "$pwd/$langdir/bf" || -e $exe); 
    131137chdir("$pwd/$langdir/bf"); 
    132 $exe = catfile($pwd, $bindir, 'parrot-bf'); 
    133 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    134138$exe = "$parrot bf.pbc" unless (-e $exe); 
    135139$out = `$exe`; 
    136140ok($out =~ /^usage/, "check bf"); 
    137 $exe = catfile($pwd, $bindir, 'parrot-bfc'); 
    138 $exe .= '.exe' if ($^O eq 'MSWin32'); 
     141$exe = quote(catfile($pwd, $bindir, 'parrot-bfc')); 
    139142$exe = "$parrot bfc.pbc" unless (-e $exe); 
    140143$out = `$exe`; 
    141144ok($out =~ /^usage/, "check bfc"); 
    142 $exe = catfile($pwd, $bindir, 'parrot-bfco'); 
    143 $exe .= '.exe' if ($^O eq 'MSWin32'); 
     145$exe = quote(catfile($pwd, $bindir, 'parrot-bfco')); 
    144146$exe = "$parrot bfco.pbc" unless (-e $exe); 
    145147$out = `$exe`; 
    146148ok($out =~ /^usage/, "check bfco"); 
     
    157159else { 
    158160    skip("blizkost", 1) 
    159161} 
     162$exe = quote(catfile($pwd, $bindir, 'parrot-blizkost')); 
    160163$filename = 'test.pl'; 
    161164open $FH, '>', $filename 
    162165        or die "Can't open $filename ($!).\n"; 
    163166print $FH "print qq{Hello, World!\n};\n"; 
    164167close $FH; 
    165 $exe = catfile($pwd, $bindir, 'parrot-blizkost'); 
    166 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    167168$exe = "$parrot perl5.pbc" unless (-e $exe); 
    168169$out = `$exe $filename`; 
    169170ok($out eq "Hello, World!\n" || $out eq "Hello, World!\r\n", "check blizkost"); 
     
    172173 
    173174SKIP: 
    174175{ 
    175 skip("Cardinal", 1) unless (-d "$pwd/$langdir/cardinal"); 
     176$exe = quote(catfile($pwd, $bindir, 'parrot-cardinal')); 
     177skip("Cardinal", 1) unless (-d "$pwd/$langdir/cardinal" || -e $exe); 
    176178chdir("$pwd/$langdir/cardinal"); 
    177 $exe = catfile($pwd, $bindir, 'parrot-cardinal'); 
    178 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    179179$exe = "$parrot cardinal.pbc" unless (-e $exe); 
    180180$out = `$exe -e "print 'hello world';"`; 
    181181ok($out eq "hello world", "check cardinal"); 
     
    183183 
    184184SKIP: 
    185185{ 
    186 skip("ChitChat", 1) unless (-d "$pwd/$langdir/chitchat"); 
     186$exe = quote(catfile($pwd, $bindir, 'parrot-chitchat')); 
     187skip("ChitChat", 1) unless (-d "$pwd/$langdir/chitchat" || -e $exe); 
    187188chdir("$pwd/$langdir/chitchat"); 
    188189$filename = 'test.smalltalk'; 
    189190open $FH, '>', $filename 
    190191        or die "Can't open $filename ($!).\n"; 
    191192print $FH "Transcript show: 'Hello, world!'."; 
    192193close $FH; 
    193 $exe = catfile($pwd, $bindir, 'parrot-chitchat'); 
    194 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    195194$exe = "$parrot chitchat.pbc" unless (-e $exe); 
    196195$out = `$exe $filename`; 
    197196ok($out eq "Hello, world!\n", "check chitchat"); 
     
    208207 
    209208SKIP: 
    210209{ 
    211 skip("EcmaScript", 1) unless (-d "$pwd/$langdir/ecmascript"); 
     210$exe = quote(catfile($pwd, $bindir, 'parrot-js')); 
     211skip("EcmaScript", 1) unless (-d "$pwd/$langdir/ecmascript" || -e $exe); 
    212212chdir("$pwd/$langdir/ecmascript"); 
    213213$filename = 'test.js'; 
    214214open $FH, '>', $filename 
    215215        or die "Can't open $filename ($!).\n"; 
    216216print $FH "print(\"Hello World from JS\");"; 
    217217close $FH; 
    218 $exe = catfile($pwd, $bindir, 'parrot-js'); 
    219 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    220218$exe = "$parrot js.pbc" unless (-e $exe); 
    221219$out = `$exe $filename`; 
    222220ok($out eq "Hello World from JS\n", "check ecmascript"); 
     
    225223 
    226224SKIP: 
    227225{ 
    228 skip("fun", 1) unless (-d "$pwd/$langdir/fun"); 
     226$exe = quote(catfile($pwd, $bindir, 'parrot-fun')); 
     227skip("fun", 1) unless (-d "$pwd/$langdir/fun" || -e $exe); 
    229228chdir("$pwd/$langdir/fun"); 
    230229$filename = 'test.fun'; 
    231230open $FH, '>', $filename 
    232231        or die "Can't open $filename ($!).\n"; 
    233232print $FH "\"Hello World!\"."; 
    234233close $FH; 
    235 $exe = catfile($pwd, $bindir, 'parrot-fun'); 
    236 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    237234$exe = "$parrot fun.pbc" unless (-e $exe); 
    238235$out = `$exe $filename`; 
    239236ok($out eq "Hello World!\n", "check fun"); 
     
    242239 
    243240SKIP: 
    244241{ 
    245 skip("gil", 1) unless (-d "$pwd/$langdir/gil"); 
     242$exe = quote(catfile($pwd, $bindir, 'parrot-gil')); 
     243skip("gil", 1) unless (-d "$pwd/$langdir/gil" || -e $exe); 
    246244chdir("$pwd/$langdir/gil"); 
    247245$filename = 'test.gil'; 
    248246open $FH, '>', $filename 
    249247        or die "Can't open $filename ($!).\n"; 
    250248print $FH q{say('Hello, world!');}; 
    251249close $FH; 
    252 $exe = catfile($pwd, $bindir, 'parrot-gil'); 
    253 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    254250$exe = "$parrot gil.pbc" unless (-e $exe); 
    255251$out = `$exe $filename`; 
    256252ok($out eq "Hello, world!\n", "check gil"); 
     
    259255 
    260256SKIP: 
    261257{ 
    262 skip("HQ9Plus", 1) unless (-d "$pwd/$langdir/hq9plus"); 
     258$exe = quote(catfile($pwd, $bindir, 'parrot-hq9plus')); 
     259skip("HQ9Plus", 1) unless (-d "$pwd/$langdir/hq9plus" || -e $exe); 
    263260chdir("$pwd/$langdir/hq9plus"); 
    264261$filename = 'test.HQ9Plus'; 
    265262open $FH, '>', $filename 
    266263        or die "Can't open $filename ($!).\n"; 
    267264print $FH "H"; 
    268265close $FH; 
    269 $exe = catfile($pwd, $bindir, 'parrot-hq9plus'); 
    270 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    271266$exe = "$parrot hq9plus.pbc" unless (-e $exe); 
    272267$out = `$exe $filename`; 
    273268ok($out eq "Hello, world!\n", "check HQ9Plus"); 
     
    276271 
    277272SKIP: 
    278273{ 
    279 skip("Lisp", 1) unless (-d "$pwd/$langdir/lisp"); 
     274$exe = quote(catfile($pwd, $bindir, 'parrot-lisp')); 
     275skip("Lisp", 1) unless (-d "$pwd/$langdir/lisp" || -e $exe); 
    280276chdir("$pwd/$langdir/lisp"); 
    281277$filename = 'test.l'; 
    282278open $FH, '>', $filename 
    283279        or die "Can't open $filename ($!).\n"; 
    284280print $FH "( print \"Hello, World!\" )\n"; 
    285281close $FH; 
    286 $exe = catfile($pwd, $bindir, 'parrot-lisp'); 
    287 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    288282$exe = "$parrot lisp.pbc" unless (-e $exe); 
    289283$out = `$exe $filename`; 
    290284ok($out eq "Hello, World!\n", "check lisp"); 
     
    293287 
    294288SKIP: 
    295289{ 
    296 skip("LOLCODE", 1) unless (-d "$pwd/$langdir/lolcode"); 
     290$exe = quote(catfile($pwd, $bindir, 'parrot-lolcode')); 
     291skip("LOLCODE", 1) unless (-d "$pwd/$langdir/lolcode" || -e $exe); 
    297292chdir("$pwd/$langdir/lolcode"); 
    298293$filename = 'test.lolcode'; 
    299294open $FH, '>', $filename 
     
    304299KTHXBYE 
    305300CODE 
    306301close $FH; 
    307 $exe = catfile($pwd, $bindir, 'parrot-lolcode'); 
    308 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    309302$exe = "$parrot lolcode.pbc" unless (-e $exe); 
    310303$out = `$exe $filename`; 
    311304ok($out eq "HAI WORLD!\n", "check lolcode"); 
     
    314307 
    315308SKIP: 
    316309{ 
    317 skip("Lua", 1) unless (-d "$pwd/$langdir/lua"); 
     310$exe = quote(catfile($pwd, $bindir, 'parrot-lua')); 
     311skip("Lua", 1) unless (-d "$pwd/$langdir/lua" || -e $exe); 
    318312chdir("$pwd/$langdir/lua"); 
    319 $exe = catfile($pwd, $bindir, 'parrot-lua'); 
    320 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    321313$exe = "$parrot lua.pbc" unless (-e $exe); 
    322314$out = `$exe -e "print(nil)"`; 
    323315ok($out eq "nil\n", "check lua"); 
     
    325317 
    326318SKIP: 
    327319{ 
    328 skip("m4", 1) unless (-d "$pwd/$langdir/m4"); 
     320$exe = quote(catfile($pwd, $bindir, 'parrot-m4')); 
     321skip("m4", 1) unless (-d "$pwd/$langdir/m4" || -e $exe); 
    329322chdir("$pwd/$langdir/m4"); 
    330 $exe = catfile($pwd, $bindir, 'parrot-m4'); 
    331 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    332323$exe = "$parrot m4.pbc" unless (-e $exe); 
    333324$out = `$exe`; 
    334325ok($out =~ /^Usage/, "check m4"); 
     
    336327 
    337328SKIP: 
    338329{ 
    339 skip("Markdown", 1) unless (-d "$pwd/$langdir/markdown"); 
     330$exe = quote(catfile($pwd, $bindir, 'parrot-markdown')); 
     331skip("Markdown", 1) unless (-d "$pwd/$langdir/markdown" || -e $exe); 
    340332chdir("$pwd/$langdir/markdown"); 
    341333$filename = 'test.text'; 
    342334open $FH, '>', $filename 
    343335        or die "Can't open $filename ($!).\n"; 
    344336print $FH "Hello, World!\n\n"; 
    345337close $FH; 
    346 $exe = catfile($pwd, $bindir, 'parrot-markdown'); 
    347 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    348338$exe = "$parrot markdown.pbc" unless (-e $exe); 
    349339$out = `$exe $filename`; 
    350340ok($out eq "<p>Hello, World!</p>\n", "check markdown"); 
     
    353343 
    354344SKIP: 
    355345{ 
    356 skip("matrixy", 1) unless (-d "$pwd/$langdir/matrixy"); 
     346$exe = quote(catfile($pwd, $bindir, 'parrot-matrixy')); 
     347skip("matrixy", 1) unless (-d "$pwd/$langdir/matrixy" || -e $exe); 
    357348chdir("$pwd/$langdir/matrixy"); 
    358349$filename = 'test.oct'; 
    359350open $FH, '>', $filename 
    360351        or die "Can't open $filename ($!).\n"; 
    361352print $FH "printf(\"Hello, world!\n\");"; 
    362353close $FH; 
    363 $exe = catfile($pwd, $bindir, 'parrot-matrixy'); 
    364 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    365354$exe = "$parrot matrixy.pbc" unless (-e $exe); 
    366355$out = `$exe $filename`; 
    367356ok($out eq "Hello, world!\n", "check matrixy"); 
     
    370359 
    371360SKIP: 
    372361{ 
    373 skip("Paraplegic", 1) unless (-d "$pwd/$langdir/paraplegic"); 
     362$exe = quote(catfile($pwd, $bindir, 'parrot-apl')); 
     363skip("Paraplegic", 1) unless (-d "$pwd/$langdir/paraplegic" || -e $exe); 
    374364chdir("$pwd/$langdir/paraplegic"); 
    375365$filename = 'test.apl'; 
    376366open $FH, '>', $filename 
    377367        or die "Can't open $filename ($!).\n"; 
    378368print $FH "\"Hello world!\""; 
    379369close $FH; 
    380 $exe = catfile($pwd, $bindir, 'parrot-apl'); 
    381 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    382370$exe = "$parrot apl.pbc" unless (-e $exe); 
    383371$out = `$exe $filename`; 
    384372ok($out eq "Hello world!\n", "check Paraplegic"); 
     
    387375 
    388376SKIP: 
    389377{ 
    390 skip("Pheme", 1) unless (-d "$pwd/$langdir/pheme"); 
     378$exe = quote(catfile($pwd, $bindir, 'parrot-pheme')); 
     379skip("Pheme", 1) unless (-d "$pwd/$langdir/pheme" || -e $exe); 
    391380chdir("$pwd/$langdir/pheme"); 
    392381$filename = 'test.l'; 
    393382open $FH, '>', $filename 
    394383        or die "Can't open $filename ($!).\n"; 
    395384print $FH "( write \"Hello, World!\\n\" )\n"; 
    396385close $FH; 
    397 $exe = catfile($pwd, $bindir, 'parrot-pheme'); 
    398 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    399386$exe = "$parrot pheme.pbc" unless (-e $exe); 
    400387$out = `$exe $filename`; 
    401388ok($out eq "Hello, World!\n", "check pheme"); 
     
    404391 
    405392SKIP: 
    406393{ 
    407 skip("Pipp", 1) unless (-d "$pwd/$langdir/pipp"); 
     394$exe = quote(catfile($pwd, $bindir, 'parrot-pipp')); 
     395skip("Pipp", 1) unless (-d "$pwd/$langdir/pipp" || -e $exe); 
    408396chdir("$pwd/$langdir/pipp"); 
    409397$filename = 'test.php'; 
    410398open $FH, '>', $filename 
    411399        or die "Can't open $filename ($!).\n"; 
    412400print $FH "<?php echo \"Hello, World!\\n\"; ?>"; 
    413401close $FH; 
    414 $exe = catfile($pwd, $bindir, 'parrot-pipp'); 
    415 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    416402$exe = "$parrot pipp.pbc" unless (-e $exe); 
    417403$out = `$exe $filename`; 
    418404ok($out eq "Hello, World!\n", "check pipp"); 
     
    421407 
    422408SKIP: 
    423409{ 
    424 skip("porcupine", 1) unless (-d "$pwd/$langdir/porcupine"); 
     410$exe = quote(catfile($pwd, $bindir, 'parrot-porcupine')); 
     411skip("porcupine", 1) unless (-d "$pwd/$langdir/porcupine" || -e $exe); 
    425412chdir("$pwd/$langdir/porcupine"); 
    426413$filename = 'test.pas'; 
    427414open $FH, '>', $filename 
     
    433420end. 
    434421CODE 
    435422close $FH; 
    436 $exe = catfile($pwd, $bindir, 'parrot-porcupine'); 
    437 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    438423$exe = "$parrot porcupine.pbc" unless (-e $exe); 
    439424$out = `$exe $filename`; 
    440425ok($out eq "Hello, world!\n", "check porcupine"); 
     
    443428 
    444429SKIP: 
    445430{ 
    446 skip("primitivearc", 1) unless (-d "$pwd/$langdir/primitivearc"); 
     431$exe = quote(catfile($pwd, $bindir, 'parrot-primitivearc')); 
     432skip("primitivearc", 1) unless (-d "$pwd/$langdir/primitivearc" || -e $exe); 
    447433chdir("$pwd/$langdir/primitivearc"); 
    448434$filename = 'test.arc'; 
    449435open $FH, '>', $filename 
    450436        or die "Can't open $filename ($!).\n"; 
    451437print $FH q{"Hello, world!\n"}; 
    452438close $FH; 
    453 $exe = catfile($pwd, $bindir, 'parrot-primitivearc'); 
    454 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    455439$exe = "$parrot primitivearc.pbc" unless (-e $exe); 
    456440$out = `$exe $filename`; 
    457441ok($out eq "Hello, world!\n\n", "check primitivearc"); 
     
    460444 
    461445SKIP: 
    462446{ 
    463 skip("Punie", 1) unless (-d "$pwd/$langdir/punie"); 
     447$exe = quote(catfile($pwd, $bindir, 'parrot-punie')); 
     448skip("Punie", 1) unless (-d "$pwd/$langdir/punie" || -e $exe); 
    464449chdir("$pwd/$langdir/punie"); 
    465450$filename = 'test.p1'; 
    466451open $FH, '>', $filename 
    467452        or die "Can't open $filename ($!).\n"; 
    468453print $FH "print \"Hello, World!\";\n"; 
    469454close $FH; 
    470 $exe = catfile($pwd, $bindir, 'parrot-punie'); 
    471 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    472455$exe = "$parrot punie.pbc" unless (-e $exe); 
    473456$out = `$exe $filename`; 
    474457ok($out eq "Hello, World!", "check punie"); 
     
    477460 
    478461SKIP: 
    479462{ 
    480 skip("Pynie", 1) unless (-d "$pwd/$langdir/pynie"); 
     463$exe = quote(catfile($pwd, $bindir, 'parrot-pynie')); 
     464skip("Pynie", 1) unless (-d "$pwd/$langdir/pynie" || -e $exe); 
    481465chdir("$pwd/$langdir/pynie"); 
    482466$filename = 'test.py'; 
    483467open $FH, '>', $filename 
    484468        or die "Can't open $filename ($!).\n"; 
    485469print $FH "print('Hello, World!')\n"; 
    486470close $FH; 
    487 $exe = catfile($pwd, $bindir, 'parrot-pynie'); 
    488 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    489471$exe = "$parrot pynie.pbc" unless (-e $exe); 
    490472$out = `$exe $filename`; 
    491473ok($out eq "Hello, World!\n", "check pynie"); 
     
    494476 
    495477SKIP: 
    496478{ 
    497 skip("Rakudo", 1) unless (-d "$pwd/$langdir/rakudo"); 
     479$exe = quote(catfile($pwd, $bindir, 'perl6')); 
     480skip("Rakudo", 1) unless (-d "$pwd/$langdir/rakudo" || -e $exe); 
    498481chdir("$pwd/$langdir/rakudo"); 
    499 $exe = catfile($pwd, $bindir, 'perl6'); 
    500 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    501482$exe = "$parrot perl6.pbc" unless (-e $exe); 
    502483$out = `$exe -e "say 'hello world'"`; 
    503484ok($out eq "hello world\n", "check rakudo"); 
     
    505486 
    506487SKIP: 
    507488{ 
    508 skip("Shakespeare", 1) unless (-d "$pwd/$langdir/shakespeare"); 
     489$exe = quote(catfile($pwd, $bindir, 'parrot-shakespeare')); 
     490skip("Shakespeare", 1) unless (-d "$pwd/$langdir/shakespeare" || -e $exe); 
    509491chdir("$pwd/$langdir/shakespeare"); 
    510492$filename = 'test.spl'; 
    511493open $FH, '>', $filename 
     
    603585 
    604586CODE 
    605587close $FH; 
    606 $exe = catfile($pwd, $bindir, 'parrot-shakespeare'); 
    607 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    608588$exe = "$parrot shakespeare.pbc" unless (-e $exe); 
    609589$out = `$exe $filename`; 
    610590ok($out eq "Hello World!\n", "check shakespeare"); 
     
    613593 
    614594SKIP: 
    615595{ 
    616 skip("steme", 1) unless (-d "$pwd/$langdir/steme"); 
     596$exe = quote(catfile($pwd, $bindir, 'parrot-steme')); 
     597skip("steme", 1) unless (-d "$pwd/$langdir/steme" || -e $exe); 
    617598chdir("$pwd/$langdir/steme"); 
    618599$filename = 'test.scm'; 
    619600open $FH, '>', $filename 
    620601        or die "Can't open $filename ($!).\n"; 
    621602print $FH "( say \"Hello, World!\" )\n"; 
    622603close $FH; 
    623 $exe = catfile($pwd, $bindir, 'parrot-steme'); 
    624 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    625604$exe = "$parrot steme.pbc" unless (-e $exe); 
    626605$out = `$exe $filename`; 
    627606ok($out eq "Hello, World!\n", "check steme"); 
     
    630609 
    631610SKIP: 
    632611{ 
    633 skip("Squaak", 1) unless (-d "$pwd/$langdir/squaak"); 
     612$exe = quote(catfile($pwd, $bindir, 'parrot-squaak')); 
     613skip("Squaak", 1) unless (-d "$pwd/$langdir/squaak" || -e $exe); 
    634614chdir("$pwd/$langdir/squaak"); 
    635615$filename = 'test.squaak'; 
    636616open $FH, '>', $filename 
    637617        or die "Can't open $filename ($!).\n"; 
    638618print $FH "print(\"Hello, World!\")\n"; 
    639619close $FH; 
    640 $exe = catfile($pwd, $bindir, 'parrot-squaak'); 
    641 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    642620$exe = "$parrot squaak.pbc" unless (-e $exe); 
    643621$out = `$exe $filename`; 
    644622ok($out eq "Hello, World!\n", "check squaak"); 
     
    647625 
    648626SKIP: 
    649627{ 
    650 skip("unlambda", 1) unless (-d "$pwd/$langdir/unlambda"); 
     628$exe = quote(catfile($pwd, $bindir, 'parrot-unl')); 
     629skip("unlambda", 1) unless (-d "$pwd/$langdir/unlambda" || -e $exe); 
    651630chdir("$pwd/$langdir/unlambda"); 
    652631$filename = 'test.unl'; 
    653632open $FH, '>', $filename 
     
    657636`r```````````.H.e.l.l.o. .w.o.r.l.di 
    658637CODE 
    659638close $FH; 
    660 $exe = catfile($pwd, $bindir, 'parrot-unl'); 
    661 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    662639$exe = "$parrot unl.pbc" unless (-e $exe); 
    663640$out = `$exe $filename`; 
    664641ok($out eq "Hello world\n", "check unlambda"); 
     
    667644 
    668645SKIP: 
    669646{ 
    670 skip("WMLScript", 1) unless (-d "$pwd/$langdir/wmlscript"); 
     647$exe = quote(catfile($pwd, $bindir, 'parrot-wmlsi')); 
     648skip("WMLScript", 1) unless (-d "$pwd/$langdir/wmlscript" || -e $exe); 
    671649skip("WMLScript, not wmlsc", 1) unless (`wmlsc -h` =~ /wmlsc/); 
    672650chdir("$pwd/$langdir/wmlscript"); 
    673651 
     
    682660CODE 
    683661close $FH; 
    684662`wmlsc $filename`; 
    685 $exe = catfile($pwd, $bindir, 'parrot-wmlsi'); 
    686 $exe .= '.exe' if ($^O eq 'MSWin32'); 
    687663$exe = "$parrot wmlsi.pbc" unless (-e $exe); 
    688664$out = `$exe ${filename}c main`; 
    689665ok($out eq "Hello World!\n", "check wmlscript");