| #!/bin/bash |
| set -e |
| |
| BINARY1_PATH=$1 |
| BINARY2_PATH=$2 |
| NM_TOOL=$3 |
| PLATFORM=$4 |
| |
| if [[ "$PLATFORM" == "not_supported" ]]; then |
| echo "Platform not supported for this test, skipping." |
| exit 0 |
| fi |
| |
| # Function to count exception tables in a binary |
| count_except_tables() { |
| local binary=$1 |
| local target_file="$binary" |
| |
| if [[ "$PLATFORM" == "wasm" ]]; then |
| # Extract wasm file from tarball if needed |
| if file -L "$binary" | grep -q "tar archive"; then |
| tar -xf "$binary" -C "$TEST_TMPDIR" |
| target_file="$TEST_TMPDIR/treeshaking_app.wasm" |
| fi |
| fi |
| |
| "$NM_TOOL" "$target_file" | grep GCC_except_table | wc -l |
| } |
| |
| COUNT1=$(count_except_tables "$BINARY1_PATH") |
| COUNT2=$(count_except_tables "$BINARY2_PATH") |
| |
| echo "Output 1 exception tables: $COUNT1" |
| echo "Output 2 exception tables: $COUNT2" |
| |
| if [[ "$COUNT1" -ne "$COUNT2" ]]; then |
| echo "FAIL: Exception table counts differ ($COUNT1 vs $COUNT2)." |
| exit 1 |
| fi |
| |
| echo "PASS: Exception table counts are identical." |