Default the Linux AFP Entry ID smoke test to sending the supplied path directly with directory handle 0. The verified smoke cases use SYS:-style paths against mars_nwe, and those requests reach NCP 0x23/0x0c and return Entry IDs. The intermediate automatic temporary directory-handle allocation path is not required for that endpoint coverage and can fail before the AFP request is sent, which makes the smoke test diagnose the wrong subsystem. Keep the handle-allocation path available behind --alloc-handle for follow-up debugging, keep --raw-path as an explicit no-op for compatibility, and keep --dir-handle N for testing relative paths against a handle that is valid in the current connection. This changes only the Linux smoke test; server AFP protocol behavior is unchanged.
Linux NCP smoke tests
This directory contains optional Linux-side integration 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 because they require the host ncpfs development headers/library and a running NetWare-compatible server.
Build with:
cmake -DMARS_NWE_BUILD_LINUX_TESTS=ON ...
cmake --build . --target afp_entry_id_smoke
AFP Entry ID smoke test
afp_entry_id_smoke sends the WebSDK-documented NetWare AFP request:
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.
Example:
./tests/linux/afp_entry_id_smoke -S MARS -U SUPERVISOR -P secret SYS:PUBLIC
The test accepts NetWare-style VOL:PATH arguments. It logs in through
libncp, allocates a temporary directory handle for the volume root, and sends
only the relative path to AFP Get Entry ID From Path Name, matching the
WebSDK request layout of DirectoryHandle + Path String.
Useful smoke cases for a standard MARS-NWE SYS volume are:
./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
A successful reply prints the temporary directory handle, the relative request
path, and the returned 32-bit AFP Entry ID. Server-side diagnostics currently
mark stat-derived temporary IDs with fallback; that means the endpoint is
reachable, but persistent CNID/AppleDouble entry-id storage is still future
Mac-namespace work.
If the server was built without the optional Netatalk/libatalk backend, the endpoint is expected to return invalid namespace. To treat that as a successful negative smoke test, use:
./tests/linux/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
expected 0x9c Invalid Path completion.