#!/bin/bash set -euo pipefail script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" scst_dir="$(dirname -- "$script_dir")" test_dir="$(mktemp -d)" trap 'rm -rf -- "$test_dir"' EXIT mkdir -p "$test_dir/orig" cat > "$test_dir/orig/qla.h" <<'EOF' /* SPDX-License-Identifier: GPL-2.0 */ #if !defined(_TRACE_QLA_H_) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_QLA_H_ #include #undef TRACE_SYSTEM #define TRACE_SYSTEM qla #define QLA_MSG_MAX 256 #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wsuggest-attribute=format" #endif DECLARE_EVENT_CLASS(qla_log_event, TP_PROTO(const char *buf, struct va_format *vaf), TP_ARGS(buf, vaf), TP_STRUCT__entry( __string(buf, buf) __vstring(msg, vaf->fmt, vaf->va) ), TP_fast_assign( __assign_str(buf); __assign_vstr(msg, vaf->fmt, vaf->va); ), TP_printk("%s %s", __get_str(buf), __get_str(msg)) ); #pragma GCC diagnostic pop DEFINE_EVENT(qla_log_event, ql_dbg_log, TP_PROTO(const char *buf, struct va_format *vaf), TP_ARGS(buf, vaf) ); #endif /* _TRACE_QLA_H */ #define TRACE_INCLUDE_FILE qla #include EOF if diff -up "$test_dir/orig/qla.h" \ "$scst_dir/qla2x00t-32gbit/include/trace/events/qla.h" \ > "$test_dir/qla.raw.patch"; then echo "Error: qla.h test inputs do not differ." >&2 exit 1 else diff_status=$? if [ "$diff_status" -gt 1 ]; then exit "$diff_status" fi fi for kernel_version in 7.1 7.2; do mkdir -p "$test_dir/linux-$kernel_version/include/trace/events" cp "$test_dir/orig/qla.h" \ "$test_dir/linux-$kernel_version/include/trace/events/qla.h" sed -e "s:^--- [^ ]*:--- linux-$kernel_version/include/trace/events/qla.h:" \ -e "s:^+++ [^ ]*:+++ linux-$kernel_version/include/trace/events/qla.h:" \ < "$test_dir/qla.raw.patch" > "$test_dir/qla-$kernel_version.patch" cat >> "$test_dir/qla-$kernel_version.patch" < "$test_dir/linux-$kernel_version/drivers/scst/next.c" "$script_dir/specialize-patch" -v delete_disabled_code=1 \ -v kernel_version="$kernel_version" -v SCST_IO_CONTEXT=0 \ < "$test_dir/qla-$kernel_version.patch" \ > "$test_dir/qla-$kernel_version.specialized.patch" grep -qF '@@ -9,8 +9,8 @@' \ "$test_dir/qla-$kernel_version.specialized.patch" grep -qF '@@ -32,13 +32,15 @@' \ "$test_dir/qla-$kernel_version.specialized.patch" patch --dry-run -f -s -p0 -d "$test_dir" \ < "$test_dir/qla-$kernel_version.specialized.patch" "$script_dir/specialize-patch" -v blank_deleted_code=1 \ -v kernel_version="$kernel_version" -v SCST_IO_CONTEXT=0 \ < "$test_dir/qla-$kernel_version.patch" \ > "$test_dir/qla-$kernel_version.specialized-n.patch" patch --dry-run -f -s -p0 -d "$test_dir" \ < "$test_dir/qla-$kernel_version.specialized-n.patch" done echo "specialize-patch qla.h regression: PASS"