perl: Skip $0 test on busybox in dist/threads/t/join.t
This test requires a ps which provides the -f option, as well as suitable output. We can't provide either with busybox. Just skip it for now. Signed-off-by: Marcel Denia <naoir@gmx.net>
This commit is contained in:
parent
948a4cc165
commit
7d38a15bc4
1 changed files with 83 additions and 0 deletions
83
lang/perl/patches/700-threads_join-skip_ps_on_busybox.patch
Normal file
83
lang/perl/patches/700-threads_join-skip_ps_on_busybox.patch
Normal file
|
@ -0,0 +1,83 @@
|
|||
perl: Skip $0 test on busybox
|
||||
|
||||
This test requires a ps which provides the -f option, as well as suitable output.
|
||||
We can't provide either with busybox. Just skip it for now.
|
||||
|
||||
Signed-off-by: Marcel Denia <naoir@gmx.net>
|
||||
|
||||
Index: perl-5.22.0/dist/threads/t/join.t
|
||||
===================================================================
|
||||
--- perl-5.22.0.orig/dist/threads/t/join.t
|
||||
+++ perl-5.22.0/dist/threads/t/join.t
|
||||
@@ -110,36 +110,41 @@ sub skip {
|
||||
|
||||
# We parse ps output so this is OS-dependent.
|
||||
if ($^O eq 'linux') {
|
||||
- # First modify $0 in a subthread.
|
||||
- #print "# mainthread: \$0 = $0\n";
|
||||
- threads->create(sub{ #print "# subthread: \$0 = $0\n";
|
||||
- $0 = "foobar";
|
||||
- #print "# subthread: \$0 = $0\n"
|
||||
- })->join;
|
||||
- #print "# mainthread: \$0 = $0\n";
|
||||
- #print "# pid = $$\n";
|
||||
- if (open PS, "ps -f |") { # Note: must work in (all) systems.
|
||||
- my ($sawpid, $sawexe);
|
||||
- while (<PS>) {
|
||||
- chomp;
|
||||
- #print "# [$_]\n";
|
||||
- if (/^\s*\S+\s+$$\s/) {
|
||||
- $sawpid++;
|
||||
- if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
|
||||
- $sawexe++;
|
||||
- }
|
||||
- last;
|
||||
- }
|
||||
- }
|
||||
- close PS or die;
|
||||
- if ($sawpid) {
|
||||
- ok($sawpid && $sawexe, 'altering $0 is effective');
|
||||
- } else {
|
||||
- skip("\$0 check: did not see pid $$ in 'ps -f |'");
|
||||
- }
|
||||
- } else {
|
||||
- skip("\$0 check: opening 'ps -f |' failed: $!");
|
||||
- }
|
||||
+ if (readlink('/bin/ps') ne 'busybox') {
|
||||
+ # First modify $0 in a subthread.
|
||||
+ #print "# mainthread: \$0 = $0\n";
|
||||
+ threads->create(sub{ #print "# subthread: \$0 = $0\n";
|
||||
+ $0 = "foobar";
|
||||
+ #print "# subthread: \$0 = $0\n"
|
||||
+ })->join;
|
||||
+ #print "# mainthread: \$0 = $0\n";
|
||||
+ #print "# pid = $$\n";
|
||||
+ if (open PS, "ps -f |") { # Note: must work in (all) systems.
|
||||
+ my ($sawpid, $sawexe);
|
||||
+ while (<PS>) {
|
||||
+ chomp;
|
||||
+ #print "# [$_]\n";
|
||||
+ if (/^\s*\S+\s+$$\s/) {
|
||||
+ $sawpid++;
|
||||
+ if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
|
||||
+ $sawexe++;
|
||||
+ }
|
||||
+ last;
|
||||
+ }
|
||||
+ }
|
||||
+ close PS or die;
|
||||
+ if ($sawpid) {
|
||||
+ ok($sawpid && $sawexe, 'altering $0 is effective');
|
||||
+ } else {
|
||||
+ skip("\$0 check: did not see pid $$ in 'ps -f |'");
|
||||
+ }
|
||||
+ } else {
|
||||
+ skip("\$0 check: opening 'ps -f |' failed: $!");
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ skip("\$0 check: incompatible with busybox");
|
||||
+ }
|
||||
} else {
|
||||
skip("\$0 check: only on Linux");
|
||||
}
|
Loading…
Reference in a new issue