diff options
Diffstat (limited to 'erts/test/run_erl_SUITE_data')
-rw-r--r-- | erts/test/run_erl_SUITE_data/defuncter.pl | 31 | ||||
-rw-r--r-- | erts/test/run_erl_SUITE_data/run_erl_test.pl | 41 |
2 files changed, 72 insertions, 0 deletions
diff --git a/erts/test/run_erl_SUITE_data/defuncter.pl b/erts/test/run_erl_SUITE_data/defuncter.pl new file mode 100644 index 0000000000..261f1b8061 --- /dev/null +++ b/erts/test/run_erl_SUITE_data/defuncter.pl @@ -0,0 +1,31 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2006-2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# + +$SIG{HUP} = 'IGNORE'; +if (fork() == 0) { + print "child\n"; + my $i = 0; + for (;;) { + sleep(5); + print $i++, "\n"; + } +} else { + print "hejsan\n"; + exit(1); +} diff --git a/erts/test/run_erl_SUITE_data/run_erl_test.pl b/erts/test/run_erl_SUITE_data/run_erl_test.pl new file mode 100644 index 0000000000..2155225e7f --- /dev/null +++ b/erts/test/run_erl_SUITE_data/run_erl_test.pl @@ -0,0 +1,41 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2006-2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# + +my $run_erl = shift; +my $defuncter = shift; +my $pipe = shift; +my $log_dir = shift; +my $cmd = "run_erl $pipe $log_dir \"$^X $defuncter\""; +my $pid; + +if (($pid = fork()) == 0) { + #print join(" ", $run_erl, $pipe, $log_dir, "$^X $defuncter"); + exec($run_erl, $pipe, $log_dir, "$^X $defuncter"); + die "ERROR: exec failed: $!\n"; +} elsif ($pid > 0) { + sleep(1); + my $res = waitpid($pid, 0); + if ($res == $pid) { + print "OK\n"; + exit(0); + } + die "ERROR: waitpid($pid, 0) returned $res\n"; +} else { + die "ERROR: fork() failed: $!\n"; +} |