lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

710-threads_join-skip_ps_on_busybox.patch (2416B)


      1 perl: Skip $0 test on busybox
      2 
      3 This test requires a ps which provides the -f option, as well as suitable output.
      4 We can't provide either with busybox. Just skip it for now.
      5 
      6 Signed-off-by: Marcel Denia <naoir@gmx.net>
      7 
      8 --- a/dist/threads/t/join.t
      9 +++ b/dist/threads/t/join.t
     10 @@ -110,36 +110,41 @@ sub skip {
     11  
     12  # We parse ps output so this is OS-dependent.
     13  if ($^O eq 'linux') {
     14 -    # First modify $0 in a subthread.
     15 -    #print "# mainthread: \$0 = $0\n";
     16 -    threads->create(sub{ #print "# subthread: \$0 = $0\n";
     17 -                        $0 = "foobar";
     18 -                        #print "# subthread: \$0 = $0\n"
     19 -                 })->join;
     20 -    #print "# mainthread: \$0 = $0\n";
     21 -    #print "# pid = $$\n";
     22 -    if (open PS, "ps -f |") { # Note: must work in (all) systems.
     23 -        my ($sawpid, $sawexe);
     24 -        while (<PS>) {
     25 -            chomp;
     26 -            #print "# [$_]\n";
     27 -            if (/^\s*\S+\s+$$\s/) {
     28 -                $sawpid++;
     29 -                if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
     30 -                    $sawexe++;
     31 -                }
     32 -                last;
     33 -            }
     34 -        }
     35 -        close PS or die;
     36 -        if ($sawpid) {
     37 -            ok($sawpid && $sawexe, 'altering $0 is effective');
     38 -        } else {
     39 -            skip("\$0 check: did not see pid $$ in 'ps -f |'");
     40 -        }
     41 -    } else {
     42 -        skip("\$0 check: opening 'ps -f |' failed: $!");
     43 -    }
     44 +	if (readlink('/bin/ps') ne 'busybox') {
     45 +		# First modify $0 in a subthread.
     46 +		#print "# mainthread: \$0 = $0\n";
     47 +		threads->create(sub{ #print "# subthread: \$0 = $0\n";
     48 +							$0 = "foobar";
     49 +							#print "# subthread: \$0 = $0\n"
     50 +					})->join;
     51 +		#print "# mainthread: \$0 = $0\n";
     52 +		#print "# pid = $$\n";
     53 +		if (open PS, "ps -f |") { # Note: must work in (all) systems.
     54 +			my ($sawpid, $sawexe);
     55 +			while (<PS>) {
     56 +				chomp;
     57 +				#print "# [$_]\n";
     58 +				if (/^\s*\S+\s+$$\s/) {
     59 +					$sawpid++;
     60 +					if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
     61 +						$sawexe++;
     62 +					}
     63 +					last;
     64 +				}
     65 +			}
     66 +			close PS or die;
     67 +			if ($sawpid) {
     68 +				ok($sawpid && $sawexe, 'altering $0 is effective');
     69 +			} else {
     70 +				skip("\$0 check: did not see pid $$ in 'ps -f |'");
     71 +			}
     72 +		} else {
     73 +			skip("\$0 check: opening 'ps -f |' failed: $!");
     74 +		}
     75 +	}
     76 +	else {
     77 +		skip("\$0 check: incompatible with busybox");
     78 +	}
     79  } else {
     80      skip("\$0 check: only on Linux");
     81  }