Skip to content

Commit

Permalink
Add run-make test for ICE dump
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Jul 19, 2023
1 parent 8eb5843 commit 217d97a
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
9 changes: 9 additions & 0 deletions tests/run-make/dump-ice-to-disk/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
include ../tools.mk

# ignore-windows

export RUSTC := $(RUSTC_ORIGINAL)
export TMPDIR := $(TMPDIR)

all:
bash check.sh
58 changes: 58 additions & 0 deletions tests/run-make/dump-ice-to-disk/check.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions tests/run-make/dump-ice-to-disk/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
fn func(s: &str) {
println!("{}", s);
}

fn main() {
func(1);
}

0 comments on commit 217d97a

Please sign in to comment.