Shell static analysis
Add pre-commit hook for static analysis on shell scripts (shellcheck) Fixed issues flagged by shellcheck.
This commit is contained in:
parent
be814a6310
commit
85fc2de396
3 changed files with 17 additions and 9 deletions
|
|
@ -12,3 +12,10 @@ repos:
|
|||
rev: 1.32.2
|
||||
hooks:
|
||||
- id: tmt-lint
|
||||
|
||||
- repo: https://github.com/koalaman/shellcheck-precommit
|
||||
rev: v0.10.0
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
require_serial: true # Podman has trouble running concurrently
|
||||
args: ["--exclude=SC1091"] # Ignore "Not following" sourced scripts
|
||||
|
|
|
|||
|
|
@ -4,13 +4,14 @@
|
|||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
declare tmp
|
||||
rlRun "tmp=$(mktemp -d)" 0 "Create a temp dir"
|
||||
# Get the compiler-rt package name from the tmt required packages, which should
|
||||
# address the issue of getting the correct name regardless it's a compat package
|
||||
# or not. The package can be named either compiler-rt or compiler-rt[0-9]+
|
||||
rlRun "COMPILER_RT=$(rlGetYAMLdeps | tr ' ' '\n' | grep -E "compiler-rt[[:digit:]]*$")"
|
||||
# Make sure to get only the main arch, so we can deal with multilib issues.
|
||||
rlRun "COMPILER_RT_NVR=$(rpm -q ${COMPILER_RT} | grep $(uname -m))"
|
||||
rlRun "COMPILER_RT_NVR=$(rpm -q "${COMPILER_RT}" | grep "$(uname -m)")"
|
||||
# Use dnf repoquery --installed so we *don't* query any repos but the
|
||||
# local rpm database instead. That should handle packages installed
|
||||
# using rpm, that are not in repos, and avoid timeouts if repo connection
|
||||
|
|
@ -23,7 +24,7 @@ rlJournalStart
|
|||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
for file in $(rpm -ql $COMPILER_RT_NVR); do
|
||||
for file in $(rpm -ql "$COMPILER_RT_NVR"); do
|
||||
# Skip iteration if the file is not a symlink
|
||||
[[ -L $file ]] || continue
|
||||
|
||||
|
|
@ -36,13 +37,13 @@ rlJournalStart
|
|||
# Up to this point, the linked file exists.
|
||||
# If the owner of the target compiler-rt package itself that's
|
||||
# correct and we can skip to the next file.
|
||||
target=$(readlink -f $file)
|
||||
OWNER_NVR=$(rpm -qf $target)
|
||||
target=$(readlink -f "$file")
|
||||
OWNER_NVR=$(rpm -qf "$target")
|
||||
[[ "$OWNER_NVR" == "$COMPILER_RT_NVR" ]] && continue
|
||||
|
||||
# The target exists but it's not owned by compiler-rt. It must be
|
||||
# owned by one of its dependencies, else flag a failure.
|
||||
if ! cat $tmp/dependencies.log | grep $OWNER_NVR; then
|
||||
if ! grep "$OWNER_NVR" "$tmp/dependencies.log"; then
|
||||
rlFail "$file pointing to $target is a dangling symlink owned by $OWNER_NVR"
|
||||
fi
|
||||
done
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
#!/bin/sh -ux
|
||||
#!/bin/bash -ux
|
||||
# Do NOT set exit after error flag (set -e). Let all the optimizations to be run
|
||||
|
||||
tmp=$(mktemp -d)
|
||||
result=0
|
||||
# Test the reproducer with all the optimization levels
|
||||
for opt_level in 0 1 2 3; do
|
||||
clang++ --rtlib=compiler-rt -O$opt_level test.cpp -o $tmp/test_O$opt_level
|
||||
$tmp/test_O$opt_level | grep '0.122986' || result=1
|
||||
clang++ --rtlib=compiler-rt -O$opt_level test.cpp -o "${tmp}/test_O${opt_level}"
|
||||
"${tmp}/test_O${opt_level}" | grep '0.122986' || result=1
|
||||
done
|
||||
|
||||
rm -rf $tmp
|
||||
rm -rf "$tmp"
|
||||
if [[ "$result" == 1 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue