068a1ca63e
Bootloader fork rebase:
- Base changed from 0.1.0 pre-patched archive to upstream 1.0.0 tag (c7eeb9f)
- Applied 0001-redbear-local-forks.patch (Cargo.toml crate path redirects)
- Applied fix-uefi-alloc-panic.patch equivalents (4 panic!() -> graceful
error handling in src/main.rs)
- Applied P5-live-preload-cap-1gib.patch (1 GiB cap on live image preload)
- Skipped: P0 GPT partition scan (requires new module + integration),
P1 timeout/default-resolution, P2 live preload guard (subsumed by
panic fixes + cap), P3 live image safe read, P4 large ISO boot,
redox.patch — to be applied in dedicated rebase session.
firmware-loader/Cargo.toml: version 0.1.0 -> 0.3.0 (sync with other
Red Bear custom crates which are at 0.3.0).
fork-upstream-map.toml: bootloader back from PENDING_REBASE to 1.0.0
since the partial rebase matches upstream 1.0.0 content.
fork-upstream-map.toml: base restored to 'main' tracked (was correctly
tracked by build-redbear.sh).
44 lines
1.6 KiB
Bash
Executable File
44 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# Before diff-3.4, diff --brief could mistakenly declare a difference.
|
|
# For example, when comparing a file like /proc/cmdline (for which the linux
|
|
# kernel reports a st_size of 0 even though it is not an empty file) to a
|
|
# copy of that file's contents residing on a "normal" file system.
|
|
|
|
. "${srcdir=.}/init.sh"; path_prepend_ ../src
|
|
|
|
fail=0
|
|
|
|
# Skip the test unless we have an appropriate file.
|
|
boot=/proc/cmdline
|
|
test -r $boot || skip_ no $boot file
|
|
sz=$(stat --format %s $boot) || skip_ stat --format %s does not work
|
|
test $sz = 0 || skip_ $boot has nonzero size
|
|
|
|
# /proc/self is not useful on the Hurd, where it always points to "1",
|
|
# so skip this test when /proc/self does not point to a file whose name is
|
|
# the current process ID.
|
|
readlink /proc/self > pid & pid=$!
|
|
wait $pid
|
|
echo $pid > exp
|
|
compare exp pid || skip_ /proc/self is not useful on this system
|
|
|
|
# There are two code paths to test: one for non-binary and one for binary files.
|
|
# $boot is non-binary.
|
|
cat $boot > ref || framework_failure_
|
|
diff --brief $boot ref > out 2>&1 || fail=1
|
|
compare /dev/null out || fail=1
|
|
|
|
# /proc/self/cmdline is a NUL-terminated list of argv values,
|
|
# so construct the expected output here:
|
|
printf 'diff\0--brief\0/proc/self/cmdline\0bin\0' > bin || framework_failure_
|
|
# And run the command that is embedded in that output:
|
|
diff --brief /proc/self/cmdline bin > out 2>&1 || fail=1
|
|
compare /dev/null out || fail=1
|
|
|
|
# Similarly for cmp -s.
|
|
printf 'cmp\0-s\0/proc/self/cmdline\0bin\0' > bin || framework_failure_
|
|
cmp -s /proc/self/cmdline bin > out 2>&1 || fail=1
|
|
compare /dev/null out || fail=1
|
|
|
|
Exit $fail
|