Add run-make test for ICE dump
This commit is contained in:
parent
8eb5843a59
commit
217d97adb8
3 changed files with 74 additions and 0 deletions
9
tests/run-make/dump-ice-to-disk/Makefile
Normal file
9
tests/run-make/dump-ice-to-disk/Makefile
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
include ../tools.mk
|
||||||
|
|
||||||
|
# ignore-windows
|
||||||
|
|
||||||
|
export RUSTC := $(RUSTC_ORIGINAL)
|
||||||
|
export TMPDIR := $(TMPDIR)
|
||||||
|
|
||||||
|
all:
|
||||||
|
bash check.sh
|
58
tests/run-make/dump-ice-to-disk/check.sh
Normal file
58
tests/run-make/dump-ice-to-disk/check.sh
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Default nightly behavior (write ICE to current directory)
|
||||||
|
# FIXME(estebank): these are failing on CI, but passing locally.
|
||||||
|
# $RUSTC src/lib.rs -Z treat-err-as-bug=1 1>$TMPDIR/rust-test-default.log 2>&1
|
||||||
|
# default=$(cat ./rustc-ice-*.txt | wc -l)
|
||||||
|
# rm ./rustc-ice-*.txt
|
||||||
|
|
||||||
|
# Explicit directory set
|
||||||
|
export RUSTC_ICE=$TMPDIR
|
||||||
|
$RUSTC src/lib.rs -Z treat-err-as-bug=1 1>$TMPDIR/rust-test-default-set.log 2>&1
|
||||||
|
default_set=$(cat $TMPDIR/rustc-ice-*.txt | wc -l)
|
||||||
|
content=$(cat $TMPDIR/rustc-ice-*.txt)
|
||||||
|
rm $TMPDIR/rustc-ice-*.txt
|
||||||
|
RUST_BACKTRACE=short $RUSTC src/lib.rs -Z treat-err-as-bug=1 1>$TMPDIR/rust-test-short.log 2>&1
|
||||||
|
short=$(cat $TMPDIR/rustc-ice-*.txt | wc -l)
|
||||||
|
rm $TMPDIR/rustc-ice-*.txt
|
||||||
|
RUST_BACKTRACE=full $RUSTC src/lib.rs -Z treat-err-as-bug=1 1>$TMPDIR/rust-test-full.log 2>&1
|
||||||
|
full=$(cat $TMPDIR/rustc-ice-*.txt | wc -l)
|
||||||
|
rm $TMPDIR/rustc-ice-*.txt
|
||||||
|
|
||||||
|
# Explicitly disabling ICE dump
|
||||||
|
export RUSTC_ICE=0
|
||||||
|
$RUSTC src/lib.rs -Z treat-err-as-bug=1 1>$TMPDIR/rust-test-disabled.log 2>&1
|
||||||
|
should_be_empty_tmp=$(ls -l $TMPDIR/rustc-ice-*.txt | wc -l)
|
||||||
|
should_be_empty_dot=$(ls -l ./rustc-ice-*.txt | wc -l)
|
||||||
|
|
||||||
|
echo "#### ICE Dump content:"
|
||||||
|
echo $content
|
||||||
|
echo "#### default length:"
|
||||||
|
echo $default
|
||||||
|
echo "#### short length:"
|
||||||
|
echo $short
|
||||||
|
echo "#### default_set length:"
|
||||||
|
echo $default_set
|
||||||
|
echo "#### full length:"
|
||||||
|
echo $full
|
||||||
|
echo "#### should_be_empty_dot length:"
|
||||||
|
echo $should_be_empty_dot
|
||||||
|
echo "#### should_be_empty_tmp length:"
|
||||||
|
echo $should_be_empty_tmp
|
||||||
|
|
||||||
|
## Verify that a the ICE dump file is created in the appropriate directories, that
|
||||||
|
## their lengths are the same regardless of other backtrace configuration options,
|
||||||
|
## that the file is not created when asked to (RUSTC_ICE=0) and that the file
|
||||||
|
## contains at least part of the expected content.
|
||||||
|
if [ $short -eq $default_set ] &&
|
||||||
|
#[ $default -eq $short ] &&
|
||||||
|
[ $default_set -eq $full ] &&
|
||||||
|
[[ $content == *"thread 'rustc' panicked at "* ]] &&
|
||||||
|
[[ $content == *"stack backtrace:"* ]] &&
|
||||||
|
#[ $default -gt 0 ] &&
|
||||||
|
[ $should_be_empty_dot -eq 0 ] &&
|
||||||
|
[ $should_be_empty_tmp -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
7
tests/run-make/dump-ice-to-disk/src/lib.rs
Normal file
7
tests/run-make/dump-ice-to-disk/src/lib.rs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
fn func(s: &str) {
|
||||||
|
println!("{}", s);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
func(1);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue