Files
java-interview-lab/fresher-qa/scripts/compile-errors.sh
T

21 lines
910 B
Bash
Executable File

#!/usr/bin/env bash
# Compiles each file in src/broken/ (they are NOT part of the Maven build) and captures javac's own message.
set -uo pipefail
cd "$(dirname "$0")/../src/broken"
out=../../output/07-compile-errors.txt
: > "$out"
for f in FinalOverride CheckedNotHandled LossyCast MissingReturnAndUnreachable; do
echo "=== javac $f.java ===" >> "$out"
javac --release 25 -d /tmp/fresher-broken "$f.java" 2>&1 | grep -v '^Picked up JAVA_TOOL_OPTIONS' >> "$out"
echo >> "$out"
done
# The same file under both language levels: an error before Java 25, fine from Java 25 (JEP 513).
for rel in 21 25; do
echo "=== javac --release $rel PreSuper.java ===" >> "$out"
if javac --release "$rel" -d /tmp/fresher-broken "PreSuper.java" 2>&1 | grep -v '^Picked up JAVA_TOOL_OPTIONS' >> "$out"; [ "${PIPESTATUS[0]}" -eq 0 ]; then
echo "compiled without errors" >> "$out"
fi
echo >> "$out"
done
cat "$out"