tests: document AFP test group paths and option

This commit is contained in:
Mario Fetka
2026-05-31 04:56:11 +00:00
parent d4938cbd74
commit 2a610f4fb6
4 changed files with 79 additions and 73 deletions

View File

@@ -77,7 +77,13 @@ option(ENABLE_XATTR "Should we build Mars Nwe with extended attribute support?"
option(MARS_NWE_INSTALL_DOSUTILS "Install DOS client utilities" ON)
option(MARS_NWE_INSTALL_NEW_DOSUTILS "Install the new/experimental DOS client utilities instead of legacy netold.exe" OFF)
option(MARS_NWE_BUILD_DOSUTILS "Build DOS client utilities with Open Watcom" OFF)
option(MARS_NWE_BUILD_LINUX_TESTS "Build optional Linux integration tests using ncpfs/libncp" OFF)
option(MARS_NWE_BUILD_AFP_TESTS "Build optional AFP integration tests using ncpfs/libncp" OFF)
if(DEFINED MARS_NWE_BUILD_LINUX_TESTS)
if(MARS_NWE_BUILD_LINUX_TESTS)
set(MARS_NWE_BUILD_AFP_TESTS ON CACHE BOOL "Build optional AFP integration tests using ncpfs/libncp" FORCE)
endif()
message(WARNING "MARS_NWE_BUILD_LINUX_TESTS is deprecated; use MARS_NWE_BUILD_AFP_TESTS instead.")
endif()
set(MARS_NWE_SMART_ADMIN_GROUP "root" CACHE STRING "Unix group allowed to log in to the SMArT/nwwebui admin interface")
@@ -234,7 +240,7 @@ add_subdirectory(src)
add_subdirectory(opt)
add_subdirectory(sys)
if(MARS_NWE_BUILD_LINUX_TESTS)
if(MARS_NWE_BUILD_AFP_TESTS)
add_subdirectory(tests/afp)
endif()
add_subdirectory(dosutils)

26
TODO.md
View File

@@ -122,7 +122,7 @@ Current status:
- Timestamp writes are routed through the existing NetWare `nw_utime_node()`
helper so trustee Modify rights and the established Unix `utime(2)` fallback
behavior are reused instead of inventing AFP-specific timestamp handling.
- The Linux smoke helper verifies the AFP date/time fields via the follow-up
- The AFP smoke helper verifies the AFP date/time fields via the follow-up
Get File Information response, and the smoke suite also records `stat -c %Y`
for the backing Unix file.
@@ -217,15 +217,15 @@ Current status:
- `AFP Get Entry ID From Path Name` is implemented when the optional
mars_nwe AFP xattr metadata backend is available. Entry IDs are now derived first from
existing mars_nwe NetWare namespace/basehandle state rather than from a
parallel AFP/stat fallback generator. Linux smoke coverage exists in
`tests/linux/afp_entry_id_smoke`; the latest full-suite run against
parallel AFP/stat fallback generator. AFP smoke coverage exists in
`tests/afp/afp_entry_id_smoke`; the latest full-suite run against
`SYS:PUBLIC/pmdflts.ini` returned `entry_id=0x00000004`.
- `AFP Get Entry ID From Name` is implemented for the same path-backed
smoke mode. Linux smoke coverage uses
`tests/linux/afp_entry_id_smoke --from-name`; the identity source follows the
smoke mode. AFP smoke coverage uses
`tests/afp/afp_entry_id_smoke --from-name`; the identity source follows the
same NetWare namespace/basehandle path as Entry ID From Path Name.
- `AFP Get File Information` is implemented for read-only path-based requests.
Linux smoke coverage exists in `tests/linux/afp_file_info_smoke` and has
AFP smoke coverage exists in `tests/afp/afp_file_info_smoke` and has
been verified against `SYS:`, `SYS:PUBLIC`, `SYS:SYSTEM`, and `SYS:BURST`.
The same test verifies the AFP 2.0 Get File Information subfunction via
`--afp20` against the same paths, using the same path-backed read-only reply
@@ -233,7 +233,7 @@ Current status:
persistent CNID Parent ID / fuller Mac namespace metadata as future work.
- `AFP Scan File Information` (`0x0a`) and `AFP 2.0 Scan File Information`
(`0x11`) are implemented for path-backed read-only directory scans. Linux
smoke coverage exists in `tests/linux/afp_scan_info_smoke`; the helper
smoke coverage exists in `tests/afp/afp_scan_info_smoke`; the helper
defaults to the AFP 2.0 subfunction and uses `--afp10` for the older
endpoint. Runtime coverage has been verified against `SYS:PUBLIC` by
walking multiple directory entries with the returned `next_last_seen` AFP
@@ -244,7 +244,7 @@ Current status:
record while preserving the expected file metadata.
- `AFP Get Entry ID From NetWare Handle` is implemented for read-only data-fork
file handles that are opened in the same client connection. Linux smoke
coverage uses `tests/linux/afp_entry_id_smoke --from-handle`. The latest
coverage uses `tests/afp/afp_entry_id_smoke --from-handle`. The latest
full-suite run verified `SYS:PUBLIC/pmdflts.ini`, returning volume 0,
`fork=0`, and the same NetWare namespace/basehandle-derived
`entry_id=0x00000004` as the path-backed lookup.
@@ -253,8 +253,8 @@ Current status:
prefix instead of assuming volume 0, so the same smoke path can cover `SYS:`
and non-`SYS:` volumes. It opens only the data fork read-only and returns a
normal six-byte NetWare file handle plus the current data-fork length; the
Linux smoke helper
`tests/linux/afp_open_file_fork_smoke` closes the returned handle in the same
AFP smoke helper
`tests/afp/afp_open_file_fork_smoke` closes the returned handle in the same
connection. Runtime smoke coverage is green for
`SYS:PUBLIC/pmdflts.ini` (`fork_len=8161`) and `SYS:PUBLIC/ohlogscr.bat`
(`fork_len=1296`) using `fork=0` and read access `0x01`. The smoke suite
@@ -266,7 +266,7 @@ Current status:
path-backed smoke subset. Raw `VOL:`-style paths resolve the effective
NetWare volume from the path prefix instead of assuming volume 0. Linux
smoke coverage exists in
`tests/linux/afp_temp_dir_handle_smoke`; runtime smoke coverage is green for
`tests/afp/afp_temp_dir_handle_smoke`; runtime smoke coverage is green for
`SYS:`, `SYS:PUBLIC`, `SYS:SYSTEM`, and `SYS:BURST`. The helper returns a
temporary NetWare directory handle plus the AFP one-byte access-rights mask
and immediately deallocates the handle in the same connection. Server
@@ -288,7 +288,7 @@ Current status:
Date/Time use the existing
mars_nwe NetWare metadata helpers; Access Date/Time uses the normal file
`atime` path; and Modify Date/Time uses the shared timestamp helper. Linux
smoke coverage exists in `tests/linux/afp_set_file_info_smoke`, which now
smoke coverage exists in `tests/afp/afp_set_file_info_smoke`, which now
always reports `layout=websdk` and verifies the result through AFP 2.0 Get
File Information. Runtime status: the WebSDK-layout-only smoke run for
`SYS:PUBLIC/pmdflts.ini` completed with `failures=0`, including legacy `0x09`
@@ -473,7 +473,7 @@ Endpoint order:
`0x00000005`, then removed both objects through AFP Delete.
- AFP Create File (`0x02`) and AFP 2.0 Create File (`0x0e`) are now routed
through the existing NetWare file-create path for temporary smoke files. The
Linux smoke helper creates both legacy and AFP 2.0 files under the tested
AFP smoke helper creates both legacy and AFP 2.0 files under the tested
parent, verifies the returned AFP file ID with Entry ID From Path Name, and
removes them through AFP Delete.
- Runtime status: the create-file smoke has been verified with AFP Delete

View File

@@ -13,8 +13,8 @@ find_library(NCPFS_LIBRARY
if(NOT NCPFS_INCLUDE_DIR OR NOT NCPFS_LIBRARY)
message(FATAL_ERROR
"MARS_NWE_BUILD_LINUX_TESTS requires ncpfs/libncp headers and libncp for AFP smoke tests. "
"Install the ncpfs development package or disable MARS_NWE_BUILD_LINUX_TESTS."
"MARS_NWE_BUILD_AFP_TESTS requires ncpfs/libncp headers and libncp for AFP smoke tests. "
"Install the ncpfs development package or disable MARS_NWE_BUILD_AFP_TESTS."
)
endif()

View File

@@ -1,6 +1,6 @@
# Linux NCP smoke tests
This directory contains optional Linux-side integration tests for endpoints that
This directory contains optional AFP integration smoke tests for endpoints that
are easier to exercise from a Unix host than from the DOS test utilities.
The tests use the ncpfs/libncp client library. They are not built by default
@@ -22,7 +22,7 @@ source-level `org.mars-nwe.*` names through the portable `user.` namespace.
Build with:
```sh
cmake -DMARS_NWE_BUILD_LINUX_TESTS=ON ...
cmake -DMARS_NWE_BUILD_AFP_TESTS=ON ...
cmake --build . --target afp_entry_id_smoke
cmake --build . --target afp_file_info_smoke
cmake --build . --target afp_scan_info_smoke
@@ -34,20 +34,20 @@ cmake --build . --target afp_set_file_info_smoke
## AFP smoke-suite report helper
`afp_smoke_suite.sh` runs the currently verified AFP Linux smoke helpers as one
`afp_smoke_suite.sh` runs the currently verified AFP AFP smoke helpers as one
collectable report. It is meant for interactive runtime validation after a
server rebuild: the script prints each helper with the password masked, captures
new AFP lines appended to the mars_nwe server log while the suite runs, and
adds `getfattr -e hex` checks for the mars_nwe AFP xattrs on the tested Unix
file.
When `MARS_NWE_BUILD_LINUX_TESTS=ON` is enabled, CMake copies the helper into
the build `tests/linux` directory through the `afp_smoke_suite` build target.
When `MARS_NWE_BUILD_AFP_TESTS=ON` is enabled, CMake copies the helper into
the build `tests/afp` directory through the `afp_smoke_suite` build target.
This keeps the runtime copy in sync with source changes, and `cmake --build
<build-dir> --target clean` removes the copied script so stale suite helpers do
not survive clean rebuilds.
Example from the build `tests/linux` directory:
Example from the build `tests/afp` directory:
```sh
./afp_smoke_suite.sh \
@@ -89,7 +89,7 @@ output from the report.
The suite can optionally exercise the Modify-rights negative path with a second
user. For a no-password test user such as `NOPASSUSER`, run from the build
`tests/linux` directory:
`tests/afp` directory:
```sh
./afp_smoke_suite.sh \
@@ -209,8 +209,8 @@ and `nw_mk_rd_dir()` rather than an AFP-only directory resolver.
Example:
```sh
./tests/linux/afp_create_directory_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpdirts
./tests/linux/afp_create_directory_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpdirts2
./tests/afp/afp_create_directory_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpdirts
./tests/afp/afp_create_directory_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpdirts2
```
The full smoke suite creates temporary directories under the tested parent using
@@ -240,8 +240,8 @@ creation from the test.
Example:
```sh
./tests/linux/afp_create_file_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfile
./tests/linux/afp_create_file_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfil2
./tests/afp/afp_create_file_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfile
./tests/afp/afp_create_file_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfil2
```
The full smoke suite creates temporary files under the tested parent with fresh
@@ -276,7 +276,7 @@ Unix `unlink`/`rmdir` calls from the test process.
Example:
```sh
./tests/linux/afp_delete_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfile
./tests/afp/afp_delete_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpfile
```
Runtime status: the smoke suite now uses AFP Delete for pre-test cleanup and
@@ -305,7 +305,7 @@ attributes, so regular files are not filtered out by the directory search bit.
Example:
```sh
./tests/linux/afp_rename_smoke -S MARS -U SUPERVISOR -P secret \
./tests/afp/afp_rename_smoke -S MARS -U SUPERVISOR -P secret \
SYS:PUBLIC/oldname SYS:PUBLIC/newname
```
@@ -326,12 +326,12 @@ NCP 0x2222/35/12 AFP Get Entry ID From Path Name
```
It uses libncp's `NWRequestSimple()` path, so it goes through the same client
transport stack as other Linux ncpfs utilities.
transport stack as other ncpfs-based utilities.
Example:
```sh
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
```
The test accepts NetWare-style `VOL:PATH` arguments. By default it sends the
@@ -343,10 +343,10 @@ follow-up debugging of the separate directory-handle allocation path, and
Useful smoke cases for a standard MARS-NWE `SYS` volume are:
```sh
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
./tests/afp/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/afp/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/afp/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
```
A successful reply prints the request path, directory handle, and returned
@@ -359,7 +359,7 @@ are expected to return invalid namespace. To treat that as a successful negativ
smoke test, use:
```sh
./tests/linux/afp_entry_id_smoke --allow-invalid-namespace -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_entry_id_smoke --allow-invalid-namespace -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
```
For path-resolution negative tests, use `--allow-invalid-path` to accept the
@@ -383,10 +383,10 @@ handle 0 and base Entry ID 0.
Useful smoke cases for a standard MARS-NWE `SYS` volume are:
```sh
./tests/linux/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:
./tests/linux/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/linux/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:BURST
./tests/afp/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:
./tests/afp/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/afp/afp_entry_id_smoke --from-name -S MARS -U SUPERVISOR -P secret SYS:BURST
```
A successful reply prints the same 32-bit AFP Entry ID format as the path-name
@@ -412,8 +412,8 @@ helper processes are not stable inputs for this request.
Useful smoke cases for a standard MARS-NWE `SYS:PUBLIC` directory are:
```sh
./tests/linux/afp_entry_id_smoke --from-handle -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/linux/afp_entry_id_smoke --from-handle -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/ohlogscr.bat
./tests/afp/afp_entry_id_smoke --from-handle -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/afp/afp_entry_id_smoke --from-handle -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/ohlogscr.bat
```
Successful replies print the resolved volume number, 32-bit AFP Entry ID, and
@@ -452,10 +452,10 @@ Path until persistent CNID/base-ID lookup exists.
Useful smoke cases for a standard MARS-NWE `SYS` volume are:
```sh
./tests/linux/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/linux/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/linux/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
./tests/afp/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/afp/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/afp/afp_temp_dir_handle_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
```
On installations with another exported volume, the same helper can be run
@@ -518,9 +518,9 @@ same connection.
Useful smoke cases for a standard MARS-NWE `SYS` volume are:
```sh
./tests/linux/afp_open_file_fork_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/linux/afp_open_file_fork_smoke --entry-id-only -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/linux/afp_open_file_fork_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/ohlogscr.bat
./tests/afp/afp_open_file_fork_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/afp/afp_open_file_fork_smoke --entry-id-only -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/afp/afp_open_file_fork_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/ohlogscr.bat
```
A file on another exported volume should be tested with its raw volume prefix
@@ -551,10 +551,10 @@ Write access is tested on a temporary file created through AFP Create File and
then removed with AFP Delete:
```sh
./tests/linux/afp_create_file_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/linux/afp_open_file_fork_smoke --access 0x02 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/linux/afp_open_file_fork_smoke --entry-id-only --access 0x02 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/linux/afp_delete_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/afp/afp_create_file_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/afp/afp_open_file_fork_smoke --access 0x02 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/afp/afp_open_file_fork_smoke --entry-id-only --access 0x02 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
./tests/afp/afp_delete_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/afpwrit
```
Resource-fork opens (`--fork 1`) remain unsupported until AppleDouble/resource
@@ -562,7 +562,7 @@ fork support exists. The smoke helper can assert the resource-fork rejection
explicitly:
```sh
./tests/linux/afp_open_file_fork_smoke --expect-completion 0x9c --fork 1 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
./tests/afp/afp_open_file_fork_smoke --expect-completion 0x9c --fork 1 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC/pmdflts.ini
```
A rejected resource-fork probe should print:
@@ -634,16 +634,16 @@ checks.
Useful smoke cases for a standard MARS-NWE `SYS` volume are:
```sh
./tests/linux/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/linux/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/linux/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
./tests/afp/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:
./tests/afp/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/afp/afp_file_info_smoke -S MARS -U SUPERVISOR -P secret SYS:BURST
# AFP 2.0 variant using the same path-backed read-only reply
./tests/linux/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:
./tests/linux/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/linux/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:BURST
./tests/afp/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:
./tests/afp/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:SYSTEM
./tests/afp/afp_file_info_smoke --afp20 -S MARS -U SUPERVISOR -P secret SYS:BURST
```
The AFP 2.0 mode is selected with `--afp20`. It has been verified against
@@ -679,10 +679,10 @@ continuation token for the next call.
Useful smoke sequence for a standard MARS-NWE `SYS:PUBLIC` directory:
```sh
./tests/linux/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_scan_info_smoke --afp10 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/linux/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret --last-seen 0x260437f6 SYS:PUBLIC
./tests/linux/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret --last-seen 0x6686342b SYS:PUBLIC
./tests/afp/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_scan_info_smoke --afp10 -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
./tests/afp/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret --last-seen 0x260437f6 SYS:PUBLIC
./tests/afp/afp_scan_info_smoke -S MARS -U SUPERVISOR -P secret --last-seen 0x6686342b SYS:PUBLIC
```
Verified runtime output from the sample `SYS:PUBLIC` tree after Entry IDs were
@@ -788,7 +788,7 @@ same extended-attribute naming pattern used by Apple metadata backends.
Example:
```sh
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--type TEXT --creator MARS \
SYS:PUBLIC/pmdflts.ini
@@ -800,7 +800,7 @@ The same FinderInfo payload can be sent through the older Set File Information
subfunction:
```sh
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--afp09 --finder-info-only --type TEXT --creator MARS \
SYS:PUBLIC/pmdflts.ini
@@ -841,7 +841,7 @@ AFP Hidden is tested through the same NetWare attribute path as System and
Archive:
```sh
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--attributes-only --hidden \
SYS:PUBLIC/pmdflts.ini
@@ -852,12 +852,12 @@ System, and Archive are routed through the existing NetWare file attribute store
rather than the AFP metadata xattr:
```sh
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--attributes-only --system \
SYS:PUBLIC/pmdflts.ini
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--attributes-only --archive \
SYS:PUBLIC/pmdflts.ini
@@ -913,7 +913,7 @@ the AFP/NW DOS date+time fields and verifies through the follow-up Get File
Information response:
```sh
./tests/linux/afp_set_file_info_smoke \
./tests/afp/afp_set_file_info_smoke \
-S MARS -U SUPERVISOR -P secret \
--timestamp-only --mtime-epoch 1700000000 \
SYS:PUBLIC/pmdflts.ini