Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Win32 MinGW cannot start coretest due to bash-specific ENV prefixing #1965

Closed
p6rt opened this issue Jul 22, 2010 · 6 comments
Closed

Win32 MinGW cannot start coretest due to bash-specific ENV prefixing #1965

p6rt opened this issue Jul 22, 2010 · 6 comments
Labels

Comments

@p6rt
Copy link

p6rt commented Jul 22, 2010

Migrated from rt.perl.org#76680 (status was 'rejected')

Searchable as RT76680$

@p6rt
Copy link
Author

p6rt commented Jul 22, 2010

From @Util

$ git show | head -1
commit 6442956542337f1d2d744d4b5ba621ce73a1e5af

In build/Makefile.in, the target "coretest" sets PARROT as an ENV
variable,
because t/02-embed/01-load.t needs to know the path to the parrot
executable.
  PARROT=$(PARROT) $(PERL) t/harness t/00-parrot t/02-sanity t/02-embed

The method used to set PARROT is unix-specific, and fails under Win32.
Worse, since it is invalid syntax, the coretest target does not even
start to run.
Since the `test` target depends on coretest, `make test` will also
fail to start on Win32.

The spectest target is not dependent on coretest,
which is probably why this problem has not shown up in Smolder.

Solution​:
1. In the Makefile, revert the code that added the "PARROT=$(PARROT)"
prefix to the coretest target's command.
2. In t/02-embed/01-load.t, add code to build parrot's full path from
$*VM<config>.

The attached patch is ready to push into the Rakudo master repo.
I will not push until after IRC discussion&agreement, since we are so
close to Rakudo release.

After release, we should consider making spectest_smolder depend on
coretest.

@p6rt
Copy link
Author

p6rt commented Jul 22, 2010

From @Util

coretest_env_bugfix.patch
diff --git a/build/Makefile.in b/build/Makefile.in
index 7b88140..689d245 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -408,7 +408,7 @@ test    : coretest
 fulltest: coretest stresstest
 
 coretest: Test.pir $(PERL6_EXE)
-	PARROT=$(PARROT) $(PERL) t/harness t/00-parrot t/01-sanity t/02-embed
+	$(PERL) t/harness t/00-parrot t/01-sanity t/02-embed
 
 # Run the spectests that we know work.
 spectest_regression: spectest
diff --git a/t/02-embed/01-load.t b/t/02-embed/01-load.t
index 709a5f3..c4ff03a 100644
--- a/t/02-embed/01-load.t
+++ b/t/02-embed/01-load.t
@@ -1,3 +1,5 @@
 use v6;
-my $parrot = %*ENV{'PARROT'};
+my $bindir = $*VM<config><bindir> or die 'No bindir found';
+my $exe    = $*VM<config><exe>    // '';
+my $parrot = "$bindir/parrot$exe";
 run("$parrot t/02-embed/01-load.pir");

@p6rt
Copy link
Author

p6rt commented Jul 22, 2010

From @Util

--
Hope this helps,
Bruce Gray (Util)

@p6rt
Copy link
Author

p6rt commented Jul 29, 2010

@coke - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Feb 24, 2014

From @coke

On Thu Jul 22 13​:19​:22 2010, util wrote​:

$ git show | head -1
commit 6442956542337f1d2d744d4b5ba621ce73a1e5af

In build/Makefile.in, the target "coretest" sets PARROT as an ENV
variable,
because t/02-embed/01-load.t needs to know the path to the parrot
executable.
PARROT=$(PARROT) $(PERL) t/harness t/00-parrot t/02-sanity t/02-embed

The method used to set PARROT is unix-specific, and fails under Win32.
Worse, since it is invalid syntax, the coretest target does not even
start to run.
Since the `test` target depends on coretest, `make test` will also
fail to start on Win32.

The spectest target is not dependent on coretest,
which is probably why this problem has not shown up in Smolder.

Solution​:
1. In the Makefile, revert the code that added the "PARROT=$(PARROT)"
prefix to the coretest target's command.
2. In t/02-embed/01-load.t, add code to build parrot's full path from
$*VM<config>.

The attached patch is ready to push into the Rakudo master repo.
I will not push until after IRC discussion&agreement, since we are so
close to Rakudo release.

After release, we should consider making spectest_smolder depend on
coretest.

util -

Sorry about the huge delay in replying here, but this patch doesn't apply cleanly anymore.

If you're still having trouble running rakudo tests on your setup, please open a new ticket.

Regards.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Feb 24, 2014

@coke - Status changed from 'open' to 'rejected'

@p6rt p6rt closed this as completed Feb 24, 2014
@p6rt p6rt added the Bug label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant