dump-ice-to-disk/check.sh: convert needless bashism in a /bin/sh script.
This script is marked with #! /bin/sh, but uses Bash-only constructs ("bashisms").
In this case there is a corresponding portable POSIX shell construct, and this
change converts to use that, instead of insisting that /bin/sh must be Bash.
r? @Mark-Simulacrum
(rustbot has picked a reviewer for you, use r? to override)
The job x86_64-gnu-llvm-16 failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
Built container sha256:9c3c93a371e5aed5c18185b24f130d95d5140dbd72a9b325e7b6b49e521a4faa
Looks like docker image is the same as before, not uploading
https://ci-caches.rust-lang.org/docker/7ebc15c01a233894034d277c8cce4e949f4e7791f66b4727c8fb6e058a0b8171d6152e1441d677cef0653843ceeee469c097b8699b2bb74249e674f6aa1a8813
sha256:9c3c93a371e5aed5c18185b24f130d95d5140dbd72a9b325e7b6b49e521a4faa
Setting extra environment values for docker: --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-16]
##[group]Clock drift check
local time: Mon Jan 15 12:01:34 UTC 2024
network time: Mon, 15 Jan 2024 12:01:34 GMT
network time: Mon, 15 Jan 2024 12:01:34 GMT
##[endgroup]
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure:
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-16', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'build.optimized-compiler-builtins', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-16/bin/llvm-config
configure: llvm.link-shared := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id := 99999999
---
##[endgroup]
Testing GCC stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
Finished release [optimized] target(s) in 1.37s
Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --no-default-features --mini-tests --std-tests`
Using system GCC
Using system GCC
[BUILD] example
[AOT] mini_core_hello_world
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc/mini_core_hello_world
abc
---
---- [run-make] tests/run-make/dump-ice-to-disk stdout ----
error: make failed
status: exit status: 2
command: cd "/checkout/tests/run-make/dump-ice-to-disk" && env -u CARGO_MAKEFLAGS -u MAKEFLAGS -u MFLAGS -u RUSTFLAGS AR="ar" CC="cc -ffunction-sections -fdata-sections -fPIC -m64" CXX="c++ -ffunction-sections -fdata-sections -fPIC -m64" HOST_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/usr/lib/llvm-16/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerparallel dwp engine executionengine extensions filecheck frontendhlsl frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink lanai lanaiasmparser lanaicodegen lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcjit orcshared orctargetprocess passes perfjitevents powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser textapi transformutils ve veasmparser vecodegen vectorize vedesc vedisassembler veinfo webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xcore xcorecodegen xcoredesc xcoredisassembler xcoreinfo xray" LLVM_FILECHECK="/usr/lib/llvm-16/bin/FileCheck" NODE="/usr/bin/node" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" RUST_BUILD_STAGE="stage2-x86_64-unknown-linux-gnu" S="/checkout" TARGET="x86_64-unknown-linux-gnu" TARGET_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" TMPDIR="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/dump-ice-to-disk/dump-ice-to-disk" "make"
bash check.sh
bash check.sh
#### ICE Dump content:
thread 'rustc' panicked at compiler/rustc_errors/src/lib.rs:1472:17: aborting due to `-Z treat-err-as-bug=1` stack backtrace: 0: 0x7faa3179ca3f - <std[2372d74fcaa53fcb]::backtrace::Backtrace>::create 1: 0x7faa3179c980 - <std[2372d74fcaa53fcb]::backtrace::Backtrace>::force_capture 2: 0x7faa32473aff - <alloc[bee1015b34640cf4]::boxed::Box<rustc_driver_impl[ad25299e49aaeafc]::install_ice_hook::{closure#0}> as core[2a5cb1581bb69faa]::ops::function::Fn<(&dyn for<'a, 'b> core[2a5cb1581bb69faa]::ops::function::Fn<(&'a core[2a5cb1581bb69faa]::panic::panic_info::PanicInfo<'b>,), Output = ()> + core[2a5cb1581bb69faa]::marker::Sync + core[2a5cb1581bb69faa]::marker::Send, &core[2a5cb1581bb69faa]::panic::panic_info::PanicInfo)>>::call 3: 0x7faa317b8d54 - std[2372d74fcaa53fcb]::panicking::rust_panic_with_hook 4: 0x7faa317b8aa9 - std[2372d74fcaa53fcb]::panicking::begin_panic_handler::{closure#0} 5: 0x7faa317b5b16 - std[2372d74fcaa53fcb]::sys_common::backtrace::__rust_end_short_backtrace::<std[2372d74fcaa53fcb]::panicking::begin_panic_handler::{closure#0}, !> 6: 0x7faa317b8820 - rust_begin_unwind 7: 0x7faa3176fa95 - core[2a5cb1581bb69faa]::panicking::panic_fmt 8: 0x7faa3551d275 - <rustc_errors[5e11bdb43e12eb8e]::DiagCtxtInner>::panic_if_treat_err_as_bug 9: 0x7faa3551c98a - <rustc_errors[5e11bdb43e12eb8e]::DiagCtxtInner>::emit_diagnostic::{closure#2} 10: 0x7faa3267f1d2 - rustc_interface[6ca9ed79953117cf]::callbacks::track_diagnostic 11: 0x7faa3551bbe4 - <rustc_errors[5e11bdb43e12eb8e]::DiagCtxtInner>::emit_diagnostic 12: 0x7faa3551a97e - <rustc_errors[5e11bdb43e12eb8e]::DiagCtxt>::emit_diagnostic 13: 0x7faa355284af - <rustc_errors[5e11bdb43e12eb8e]::diagnostic_builder::DiagnosticBuilder>::emit_producing_error_guaranteed 14: 0x7faa32ab3a07 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::report_arg_errors 15: 0x7faa32aaf5cf - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_argument_types 16: 0x7faa32a77188 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::confirm_builtin_call 17: 0x7faa32a760a5 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_call 18: 0x7faa32b08d95 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_kind 19: 0x7faa32a8facd - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args 20: 0x7faa32b082eb - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_with_expectation 21: 0x7faa32ab7004 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_stmt 22: 0x7faa32ab747a - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_block_with_expected 23: 0x7faa32b09094 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_kind 24: 0x7faa32a8facd - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args 25: 0x7faa32b082eb - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_expr_with_expectation 26: 0x7faa32a91312 - <rustc_hir_typeck[a41d19613a2bf68c]::fn_ctxt::FnCtxt>::check_return_expr 27: 0x7faa32c4a4ae - rustc_hir_typeck[a41d19613a2bf68c]::check::check_fn 28: 0x7faa32c467bd - rustc_hir_typeck[a41d19613a2bf68c]::typeck 29: 0x7faa33f4a7f5 - rustc_query_impl[10942d4dd068413c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[10942d4dd068413c]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[b0562262287e0050]::query::erase::Erased<[u8; 8usize]>> 30: 0x7faa34153e95 - <rustc_query_impl[10942d4dd068413c]::query_impl::typeck::dynamic_query::{closure#2} as core[2a5cb1581bb69faa]::ops::function::FnOnce<(rustc_middle[b0562262287e0050]::ty::context::TyCtxt, rustc_span[ea513791d0304561]::def_id::LocalDefId)>>::call_once 31: 0x7faa34333783 - rustc_query_system[75cd641930c2963]::query::plumbing::try_execute_query::<rustc_query_impl[10942d4dd068413c]::DynamicConfig<rustc_query_system[75cd641930c2963]::query::caches::VecCache<rustc_span[ea513791d0304561]::def_id::LocalDefId, rustc_middle[b0562262287e0050]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[10942d4dd068413c]::plumbing::QueryCtxt, false> 32: 0x7faa341b9bf5 - rustc_query_impl[10942d4dd068413c]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace 33: 0x7faa32dd770e - <rustc_middle[b0562262287e0050]::hir::map::Map>::par_body_owners::<rustc_hir_analysis[557aad14d01ee6e5]::check_crate::{closure#6}>::{closure#0} 34: 0x7faa32dd2991 - std[2372d74fcaa53fcb]::panicking::try::<(), core[2a5cb1581bb69faa]::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures[877b8ecc1ff2582a]::sync::parallel::enabled::par_for_each_in<&rustc_span[ea513791d0304561]::def_id::LocalDefId, &[rustc_span[ea513791d0304561]::def_id::LocalDefId], <rustc_middle[b0562262287e0050]::hir::map::Map>::par_body_owners<rustc_hir_analysis[557aad14d01ee6e5]::check_crate::{closure#6}>::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> 35: 0x7faa32f24a2c - <rustc_data_structures[877b8ecc1ff2582a]::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures[877b8ecc1ff2582a]::sync::parallel::enabled::par_for_each_in<&rustc_span[ea513791d0304561]::def_id::LocalDefId, &[rustc_span[ea513791d0304561]::def_id::LocalDefId], <rustc_middle[b0562262287e0050]::hir::map::Map>::par_body_owners<rustc_hir_analysis[557aad14d01ee6e5]::check_crate::{closure#6}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}> 36: 0x7faa32d74ffe - rustc_hir_analysis[557aad14d01ee6e5]::check_crate 37: 0x7faa326b7930 - rustc_interface[6ca9ed79953117cf]::passes::analysis 38: 0x7faa33f4add3 - rustc_query_impl[10942d4dd068413c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[10942d4dd068413c]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[b0562262287e0050]::query::erase::Erased<[u8; 1usize]>> 39: 0x7faa340130c1 - <rustc_query_impl[10942d4dd068413c]::query_impl::analysis::dynamic_query::{closure#2} as core[2a5cb1581bb69faa]::ops::function::FnOnce<(rustc_middle[b0562262287e0050]::ty::context::TyCtxt, ())>>::call_once 40: 0x7faa3426ff38 - rustc_query_system[75cd641930c2963]::query::plumbing::try_execute_query::<rustc_query_impl[10942d4dd068413c]::DynamicConfig<rustc_query_system[75cd641930c2963]::query::caches::SingleCache<rustc_middle[b0562262287e0050]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[10942d4dd068413c]::plumbing::QueryCtxt, false> 41: 0x7faa340d1811 - rustc_query_impl[10942d4dd068413c]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace 42: 0x7faa3240d21a - <rustc_middle[b0562262287e0050]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}::{closure#0}::{closure#3}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>> 43: 0x7faa324a134a - <rustc_interface[6ca9ed79953117cf]::interface::Compiler>::enter::<rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}::{closure#0}, core[2a5cb1581bb69faa]::result::Result<core[2a5cb1581bb69faa]::option::Option<rustc_interface[6ca9ed79953117cf]::queries::Linker>, rustc_span[ea513791d0304561]::ErrorGuaranteed>> 44: 0x7faa3245710a - rustc_span[ea513791d0304561]::set_source_map::<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}::{closure#0}> 45: 0x7faa3246666f - <scoped_tls[28b2ca7aea7736bf]::ScopedKey<rustc_span[ea513791d0304561]::SessionGlobals>>::set::<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_pool_with_globals<rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>> 46: 0x7faa324575dc - rustc_span[ea513791d0304561]::create_session_globals_then::<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_interface[6ca9ed79953117cf]::util::run_in_thread_pool_with_globals<rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}> 47: 0x7faa3242175e - std[2372d74fcaa53fcb]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_with_globals<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_pool_with_globals<rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>> 48: 0x7faa324589b4 - std[2372d74fcaa53fcb]::panicking::try::<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, core[2a5cb1581bb69faa]::panic::unwind_safe::AssertUnwindSafe<<std[2372d74fcaa53fcb]::thread::Builder>::spawn_unchecked_<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_with_globals<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_pool_with_globals<rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#1}::{closure#0}>> 49: 0x7faa324c4eca - <<std[2372d74fcaa53fcb]::thread::Builder>::spawn_unchecked_<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_with_globals<rustc_interface[6ca9ed79953117cf]::util::run_in_thread_pool_with_globals<rustc_interface[6ca9ed79953117cf]::interface::run_compiler<core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>, rustc_driver_impl[ad25299e49aaeafc]::run_compiler::{closure#0}>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[2a5cb1581bb69faa]::result::Result<(), rustc_span[ea513791d0304561]::ErrorGuaranteed>>::{closure#1} as core[2a5cb1581bb69faa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} 50: 0x7faa317c443e - <std[2372d74fcaa53fcb]::sys::pal::unix::thread::Thread>::new::thread_start 51: 0x7faa315af6ba - <unknown> 52: 0x7faa3163e0d0 - <unknown> 53: 0x0 - <unknown> rustc version: 1.77.0-nightly (b3195bc5c 2024-01-15) platform: x86_64-unknown-linux-gnu query stack during panic: #0 [typeck] type-checking `main` #1 [analysis] running analysis passes on this crate end of query stack
#### default length:
#### short length:
Build completed unsuccessfully in 0:35:13
66
#### default_set length:
#### default_set length:
66
#### full length:
#### should_be_empty_dot length:
0
0
#### should_be_empty_tmp length:
------------------------------------------
--- stderr -------------------------------
check.sh: line 57: unexpected EOF while looking for matching `"'
make: *** [Makefile:10: all] Error 2
The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)
Click to see the possible cause of the failure (guessed by this bot)
can we change it to a bash shebang instead? the bash looks less bad than the posix shell. I don't think it matters which shebang you choose exactly because I don't expect the test suite to actually use the shebang, but it's nice to have one for tools like shellcheck. I'd recommend /usr/bin/env bash
Kicking to get another CI run, last one seems to be a spurious failure.
I'm not sure bash shebang is really a delta here, I'm inclined to land as-is. Long-term, https://github.com/rust-lang/rust/issues/40713 is the real solution to readability.
@rustbot author waiting for you to address the feedback and just change the shebang
can we change it to a bash shebang instead? the bash looks less bad than the posix shell. I don't think it matters which shebang you choose exactly because I don't expect the test suite to actually use the shebang, but it's nice to have one for tools like shellcheck. I'd recommend
/usr/bin/env bash
Well. It's evident that you have different priorities than I do, and if this was my code, I would not do that. I would instead put priority on "standard compliance" and "portability", instead of prioritizing "it looks prettier". But this isn't my code or my call to make.
better idea: just rewrite the test in rust instead: #121876
Closing this pr as it's inactive and better off being rewritten as a rust test instead of this approach