- From bb3b2ae39883d429524e6e5d3d295bbf13f035b4 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 5 Aug 2025 11:00:44 +0200
- Subject: [PATCH 1/4] tests: nfsbuildtest gcc build requires /usr/bin/patch
- Package "patch" needs to be added to the list of required packages
- for nfsbuildtest.ksh gcc build, because it uses /usr/bin/patch.
- Reported-by: Aurelien Couderc <aurelien.couderc2002@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/nfsbuildtest/nfsbuildtest.ksh93 | 2 ++
- 1 file changed, 2 insertions(+)
- diff --git a/tests/nfsbuildtest/nfsbuildtest.ksh93 b/tests/nfsbuildtest/nfsbuildtest.ksh93
- index 13aa759..b543938 100644
- --- a/tests/nfsbuildtest/nfsbuildtest.ksh93
- +++ b/tests/nfsbuildtest/nfsbuildtest.ksh93
- @@ -667,6 +667,7 @@ function main
- is_toolkit_pkg_installed itp 'gcc-core' || (( errc++ ))
- is_toolkit_pkg_installed itp 'gcc-g++' || (( errc++ ))
- is_toolkit_pkg_installed itp 'make' || (( errc++ ))
- + is_toolkit_pkg_installed itp 'patch' || (( errc++ ))
- is_toolkit_pkg_installed itp 'flex' || (( errc++ ))
- is_toolkit_pkg_installed itp 'bison' || (( errc++ ))
- is_toolkit_pkg_installed itp 'libgmp-devel' || (( errc++ ))
- @@ -711,6 +712,7 @@ function main
- else
- print '# bash_build: unsupported toolkit'
- fi
- + is_toolkit_pkg_installed itp 'patch' || (( errc++ ))
- is_toolkit_pkg_installed itp 'libncurses-devel' || (( errc++ ))
- is_toolkit_pkg_installed itp 'gettext' || (( errc++ ))
- is_toolkit_pkg_installed itp 'gettext-devel' || (( errc++ ))
- --
- 2.45.1
- From e9d165871e68de1fcda2e261fcb47caaa1edb351 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 5 Aug 2025 11:22:30 +0200
- Subject: [PATCH 2/4] tests: Add Win11/VS2022 support to nfsbuildtest
- msnfs41client build
- Add Windows 11/Visual Studio 2022 support to
- $ nfsbuildtest.ksh msnfs41client build #
- Reported-by: Aurelien Couderc <aurelien.couderc2002@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/nfsbuildtest/nfsbuildtest.ksh93 | 36 +++++++++++++++++++++------
- 1 file changed, 29 insertions(+), 7 deletions(-)
- diff --git a/tests/nfsbuildtest/nfsbuildtest.ksh93 b/tests/nfsbuildtest/nfsbuildtest.ksh93
- index b543938..59cbeb2 100644
- --- a/tests/nfsbuildtest/nfsbuildtest.ksh93
- +++ b/tests/nfsbuildtest/nfsbuildtest.ksh93
- @@ -529,13 +529,35 @@ function msnfs41client_build
- # build ms-nfs41-client
- #
- (
- - # Visual Studio 19 64bit+32bit kernel codepath
- - # fixme: Add support for VS2022 64bit-only codepath
- - export PATH+=":/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/"
- - set -o errexit
- - time make -j1 -f cygwin/Makefile build
- - time make -j1 -f cygwin/Makefile installdest
- - time make -j1 -f cygwin/Makefile bintarball
- + #
- + # We assume here:
- + # Visual Studio 2019 --> Win10 64bit+32bit build,
- + # Visual Studio 2022 --> Win11/64bit-only build
- + #
- + if [[ -x '/cygdrive/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/MSBuild.exe' ]] ; then
- + # Visual Studio 19 64bit+32bit kernel codepath
- + export PATH="/cygdrive/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin/:$PATH"
- + set -o errexit
- +
- + # "retarget" VS platform toolset to "v143"
- + # ("v142" should remain the default when comitting)
- + sed -i -E 's/<PlatformToolset>v142<\/PlatformToolset>/<PlatformToolset>v143<\/PlatformToolset>/g' $(find 'build.vc19' -name \*.vcxproj)
- +
- + # build
- + time make -j1 -f cygwin/Makefile build64
- + time make -j1 -f cygwin/Makefile installdest64
- + time make -j1 -f cygwin/Makefile bintarball64
- + elif [[ -x '/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MSBuild.exe' ]] ; then
- + # Visual Studio 19 64bit+32bit kernel codepath
- + export PATH="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/:$PATH"
- + set -o errexit
- + time make -j1 -f cygwin/Makefile build
- + time make -j1 -f cygwin/Makefile installdest
- + time make -j1 -f cygwin/Makefile bintarball
- + else
- + print -u2 -f "%s: Unknown compiler.\n" "$0"
- + exit 5
- + fi
- )
- echo $?
- --
- 2.45.1
- From 169699249f887bad22ee1c52198c4b9913cbf1cf Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 5 Aug 2025 12:22:26 +0200
- Subject: [PATCH 3/4] tests: nfsbuildtest bash build should use a git release
- tag and not "master"
- nfsbuildtest.ksh bash build should use a git release tag and not the
- "master" branch. Otherwise build results can vary between commits made
- on "master."
- Reported-by: Aurelien Couderc <aurelien.couderc2002@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/nfsbuildtest/nfsbuildtest.ksh93 | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
- diff --git a/tests/nfsbuildtest/nfsbuildtest.ksh93 b/tests/nfsbuildtest/nfsbuildtest.ksh93
- index 59cbeb2..14ee651 100644
- --- a/tests/nfsbuildtest/nfsbuildtest.ksh93
- +++ b/tests/nfsbuildtest/nfsbuildtest.ksh93
- @@ -292,7 +292,8 @@ function bash_build
- compound gitdata=(
- typeset url='https://github.com/bminor/bash.git'
- # use fixed git tag, so build times are compareable
- - typeset tag='master'
- + # (make sure to test this with Windows 10/32bit+Cygwin 3.4!!)
- + typeset tag='bash-5.0'
- )
- typeset -a configure_options=(
- --
- 2.45.1
- From 1f6a7bdd429a0103e6fd8a37e4d1d4771fff184a Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Tue, 5 Aug 2025 18:08:21 +0200
- Subject: [PATCH 4/4] cygwin,tests: Add test for r/w memory-mapped files
- Add test for r/w memory-mapped files.
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- cygwin/Makefile | 4 +
- cygwin/Makefile.install | 9 +
- tests/filemmaptests/Makefile | 26 +++
- tests/filemmaptests/qsortonmmapedfile1.c | 183 ++++++++++++++++++
- .../testqsortonmmapedfile1.ksh93 | 44 +++++
- 5 files changed, 266 insertions(+)
- create mode 100644 tests/filemmaptests/Makefile
- create mode 100644 tests/filemmaptests/qsortonmmapedfile1.c
- create mode 100755 tests/filemmaptests/testqsortonmmapedfile1.ksh93
- diff --git a/cygwin/Makefile b/cygwin/Makefile
- index f570023..4cff33b 100644
- --- a/cygwin/Makefile
- +++ b/cygwin/Makefile
- @@ -22,6 +22,7 @@ VS_BUILD_DIR64:=$(PROJECT_BASEDIR_DIR)/build.vc19/x64/Debug/
- $(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.exe \
- $(PROJECT_BASEDIR_DIR)/tests/lssparse/lssparse.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.exe \
- + $(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.exe: build_testutils
- @@ -67,6 +68,7 @@ build_testutils:
- (cd "$(PROJECT_BASEDIR_DIR)/tests/ea" && make all)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/lssparse" && make all)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1" && make all)
- + (cd "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests" && make all)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winclonefile" && make all)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winsg" && make all)
- @@ -102,6 +104,7 @@ clean:
- (cd "$(PROJECT_BASEDIR_DIR)/tests/ea" && make clean)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/lssparse" && make clean)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winfsinfo1" && make clean)
- + (cd "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests" && make clean)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winclonefile" && make clean)
- (cd "$(PROJECT_BASEDIR_DIR)/tests/winsg" && make clean)
- @@ -112,6 +115,7 @@ installdest_util: \
- $(PROJECT_BASEDIR_DIR)/tests/ea/nfs_ea.exe \
- $(PROJECT_BASEDIR_DIR)/tests/lssparse/lssparse.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winfsinfo1/winfsinfo.exe \
- + $(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winclonefile/winclonefile.exe \
- $(PROJECT_BASEDIR_DIR)/tests/winsg/winsg.exe \
- $(CYGWIN_MAKEFILE_DIR)/devel/msnfs41client.bash
- diff --git a/cygwin/Makefile.install b/cygwin/Makefile.install
- index ba7d0ed..c361190 100644
- --- a/cygwin/Makefile.install
- +++ b/cygwin/Makefile.install
- @@ -43,6 +43,7 @@ installdest:
- mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests
- mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc
- mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles
- + mkdir -p $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests
- cp $(VS_BUILD_DIR)/nfsd.exe $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/nfsd_debug.exe
- cp $(VS_BUILD_DIR)/nfsd.pdb $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/nfsd_debug.pdb
- cp $(VS_BUILD_DIR)/nfs_mount.* $(DESTDIR)/$(CYGWIN_BASEPATH)/sbin/.
- @@ -136,6 +137,14 @@ installdest:
- else \
- (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/bin/ && $(LINKEXE) nfs_ea.i686.exe nfs_ea.exe) \
- fi
- + cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.x86_64.exe
- + cp "$(PROJECT_BASEDIR_DIR)/tests/filemmaptests/qsortonmmapedfile1.i686.exe" $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/qsortonmmapedfile1.i686.exe
- + if [[ "$(CYGWIN_BASEPATH)" == *64* ]] ; then \
- + (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/ && $(LINKEXE) qsortonmmapedfile1.x86_64.exe qsortonmmapedfile1.exe) \
- + else \
- + (cd $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/ && $(LINKEXE) qsortonmmapedfile1.i686.exe qsortonmmapedfile1.exe) \
- + fi
- + cp $(PROJECT_BASEDIR_DIR)/tests/filemmaptests/testqsortonmmapedfile1.ksh93 $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/filemmaptests/testqsortonmmapedfile1.ksh93
- cp $(PROJECT_BASEDIR_DIR)/tests/nfsbuildtest/nfsbuildtest.ksh93 $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/misc/nfsbuildtest.ksh93
- cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparsefile1.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles/testsparsefile1.ksh
- cp $(PROJECT_BASEDIR_DIR)/tests/sparsefiles/testsparseexe1.ksh $(DESTDIR)/$(CYGWIN_BASEPATH)/usr/share/msnfs41client/tests/sparsefiles/testsparseexe1.ksh
- diff --git a/tests/filemmaptests/Makefile b/tests/filemmaptests/Makefile
- new file mode 100644
- index 0000000..651f1bd
- --- /dev/null
- +++ b/tests/filemmaptests/Makefile
- @@ -0,0 +1,26 @@
- +#
- +# Makefile for qsortonmmapedfile1
- +#
- +
- +# POSIX Makefile
- +
- +all: \
- + qsortonmmapedfile1.i686.exe \
- + qsortonmmapedfile1.x86_64.exe \
- + qsortonmmapedfile1.exe
- +
- +qsortonmmapedfile1.i686.exe: qsortonmmapedfile1.c
- + clang -target i686-pc-windows-gnu -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O qsortonmmapedfile1.c -o qsortonmmapedfile1.i686.exe
- +
- +qsortonmmapedfile1.x86_64.exe: qsortonmmapedfile1.c
- + clang -target x86_64-pc-windows-gnu -Wall -Wextra -DUNICODE=1 -D_UNICODE=1 -g -O qsortonmmapedfile1.c -o qsortonmmapedfile1.x86_64.exe
- +
- +qsortonmmapedfile1.exe: qsortonmmapedfile1.x86_64.exe
- + ln -s qsortonmmapedfile1.x86_64.exe qsortonmmapedfile1.exe
- +
- +clean:
- + rm -fv \
- + qsortonmmapedfile1.i686.exe \
- + qsortonmmapedfile1.x86_64.exe \
- + qsortonmmapedfile1.exe
- +# EOF.
- diff --git a/tests/filemmaptests/qsortonmmapedfile1.c b/tests/filemmaptests/qsortonmmapedfile1.c
- new file mode 100644
- index 0000000..976c325
- --- /dev/null
- +++ b/tests/filemmaptests/qsortonmmapedfile1.c
- @@ -0,0 +1,183 @@
- +
- +/*
- + * MIT License
- + *
- + * Copyright (c) 2025 Roland Mainz <roland.mainz@nrubsig.org>
- + *
- + * Permission is hereby granted, free of charge, to any person obtaining a copy
- + * of this software and associated documentation files (the "Software"), to deal
- + * in the Software without restriction, including without limitation the rights
- + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- + * copies of the Software, and to permit persons to whom the Software is
- + * furnished to do so, subject to the following conditions:
- + *
- + * The above copyright notice and this permission notice shall be included in
- + * all copies or substantial portions of the Software.
- + *
- + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- + * SOFTWARE.
- + */
- +
- +/*
- + * qsortonmmapedfile1.c - test |qsort()| on memory mapped file
- + *
- + * Written by Roland Mainz <roland.mainz@nrubsig.org>
- + */
- +
- +/*
- + * Example usage:
- + *
- + * builtin cat
- + * builtin rm
- + * if [[ -f numfile1_orig ]] ; then
- + * for ((i=1*1024*1024 ; i > 0 ; i--)) ; do
- + * printf "%15.15d\n" i
- + * # cat is used for buffering
- + * done | cat >"numfile1_orig"
- + * fi
- + * set -o xtrace
- + *
- + * rm -f numfile1
- + * cp numfile1_orig numfile1
- + * time sort numfile1 -o numfile1_sort_out
- + * ls -l numfile1
- + * head numfile1
- + * time ./qsortonmmapedfile1.exe numfile1
- + * head numfile1
- + * ls -l numfile1
- + * diff -u numfile1 numfile1_sort_out
- + */
- +
- +#define _CRT_SECURE_NO_WARNINGS 1
- +
- +#include <windows.h>
- +#include <locale.h>
- +#include <stdio.h>
- +#include <stdlib.h>
- +#include <string.h>
- +
- +#define EXIT_USAGE 2
- +
- +#define RECORD_DATA_SIZE 15
- +#define RECORD_SIZE (RECORD_DATA_SIZE+1)
- +
- +static
- +int compare_records_strcmp(const void *a, const void *b)
- +{
- + return strncmp(a, b, RECORD_DATA_SIZE);
- +}
- +
- +int main(int argc, char *argv[])
- +{
- + int res;
- +
- + (void)setlocale(LC_ALL, "C");
- +
- + if (argc != 2) {
- + (void)fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
- + (void)fprintf(stderr,
- + "Note: File must contain 10 ASCII characters per line.\n");
- + return EXIT_USAGE;
- + }
- +
- + const char *filename = argv[1];
- + HANDLE hFile = NULL;
- + HANDLE hMapping = NULL;
- + char *fileView = NULL;
- +
- + hFile = CreateFileA(filename,
- + GENERIC_READ | GENERIC_WRITE,
- + 0,
- + NULL,
- + OPEN_EXISTING,
- + FILE_ATTRIBUTE_NORMAL,
- + NULL
- + );
- +
- + if (hFile == INVALID_HANDLE_VALUE) {
- + (void)fprintf(stderr,
- + "Error: Could not open file '%s' for writing (lasterr=%ld)\n",
- + filename, (long)GetLastError());
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + hMapping = CreateFileMappingA(hFile, NULL, PAGE_READWRITE, 0, 0, NULL);
- + if (hMapping == NULL) {
- + (void)fprintf(stderr,
- + "Error: CreateFileMapping failed (lasterr=%ld)\n",
- + (long)GetLastError());
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + fileView = (char *)MapViewOfFile(hMapping, FILE_MAP_WRITE, 0, 0, 0);
- + if (fileView == NULL) {
- + (void)fprintf(stderr,
- + "Error: MapViewOfFile failed (lasterr=%ld)\n",
- + (long)GetLastError());
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + LARGE_INTEGER fileSize;
- + if (!GetFileSizeEx(hFile, &fileSize)) {
- + (void)fprintf(stderr,
- + "Error: Could not get file size (lasterr=%lu)\n",
- + (long)GetLastError());
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + if (fileSize.QuadPart == 0) {
- + printf("File is empty.\n");
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + if (fileSize.QuadPart % RECORD_SIZE != 0) {
- + (void)fprintf(stderr,
- + "Error: File size (%lld) "
- + "is not a multiple of the expected record size (%d).\n",
- + (long long)fileSize.QuadPart, RECORD_SIZE);
- + (void)fprintf(stderr,
- + "Please ensure the file uses LF (\\n) line endings "
- + "and has 10 chars per line.\n");
- + res = EXIT_FAILURE;
- + goto cleanup;
- + }
- +
- + size_t record_count = fileSize.QuadPart / RECORD_SIZE;
- + (void)printf("File mapped successfully. Found %zu records to sort.\n",
- + record_count);
- +
- + (void)printf("Sorting records in-place (lexicographically)...\n");
- + qsort(fileView, record_count, RECORD_SIZE, compare_records_strcmp);
- +
- + if (!FlushViewOfFile(fileView, 0)) {
- + (void)fprintf(stderr,
- + "Warning: Could not flush changes to disk (lassterr=%ld)\n",
- + (long)GetLastError());
- + }
- +
- + (void)printf("\nFile has been sorted and saved successfully.\n");
- + res = EXIT_SUCCESS;
- +
- +cleanup:
- + if (fileView != NULL) {
- + (void)UnmapViewOfFile(fileView);
- + }
- + if (hMapping != NULL) {
- + (void)CloseHandle(hMapping);
- + }
- + if (hFile != INVALID_HANDLE_VALUE) {
- + (void)CloseHandle(hFile);
- + }
- +
- + return res;
- +}
- diff --git a/tests/filemmaptests/testqsortonmmapedfile1.ksh93 b/tests/filemmaptests/testqsortonmmapedfile1.ksh93
- new file mode 100755
- index 0000000..fcc865d
- --- /dev/null
- +++ b/tests/filemmaptests/testqsortonmmapedfile1.ksh93
- @@ -0,0 +1,44 @@
- +#!/bin/ksh93
- +
- +#
- +# testqsortonmmapedfile1.ksh93 - Test |qsort()| on memory mapped file
- +#
- +
- +set -o errexit
- +
- +builtin cat
- +builtin cmp
- +builtin rm
- +
- +integer res=0
- +
- +which qsortonmmapedfile1.exe || exit 1
- +
- +if [[ ! -f 'numfile1_orig' ]] ; then
- + for ((i=32*1024*1024 ; i > 0 ; i--)) ; do
- + printf "%15.15d\n" i
- + # cat is used for buffering
- + done | cat >'numfile1_orig'
- +fi
- +set -o xtrace
- +
- +rm -f 'numfile1' 'numfile1_sort_out'
- +cp 'numfile1_orig' 'numfile1'
- +time sort 'numfile1' -o 'numfile1_sort_out'
- +ls -l 'numfile1'
- +head 'numfile1'
- +time qsortonmmapedfile1.exe 'numfile1'
- +head 'numfile1'
- +ls -l 'numfile1'
- +if cmp 'numfile1' 'numfile1_sort_out' ; then
- + printf '#\n# test OK\n#\n'
- + (( res=0 ))
- +else
- + printf '#\n# test FAILED\n#\n'
- + (( res=1 ))
- +
- + diff -u 'numfile1' 'numfile1_sort_out'
- +fi
- +
- +exit $res
- +# EOF.
- --
- 2.45.1
msnfs41client: Patches for tests+misc, 2025-08-0
Posted by Anonymous on Tue 5th Aug 2025 18:22
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.