mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-02 11:53:27 +00:00
59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
{ lib
|
|
, writeText
|
|
, runCommand
|
|
, tsm-client
|
|
}:
|
|
|
|
# Let the client try to connect to a server.
|
|
# We can't simulate a server, so there's no more to test.
|
|
|
|
let
|
|
|
|
# 192.0.0.8 is a "dummy address" according to RFC 7600
|
|
dsmSysCli = writeText "cli.dsm.sys" ''
|
|
defaultserver testserver
|
|
server testserver
|
|
commmethod v6tcpip
|
|
tcpserveraddress 192.0.0.8
|
|
nodename ARBITRARYNODENAME
|
|
'';
|
|
|
|
tsm-client_ = tsm-client.override { inherit dsmSysCli; };
|
|
|
|
env.nativeBuildInputs = [ tsm-client_ ];
|
|
|
|
versionString =
|
|
let
|
|
inherit (tsm-client_.passthru.unwrapped) version;
|
|
major = lib.versions.major version;
|
|
minor = lib.versions.minor version;
|
|
patch = lib.versions.patch version;
|
|
fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
|
|
in
|
|
"Client Version ${major}, Release ${minor}, Level ${patch}.${fixup}";
|
|
|
|
in
|
|
|
|
runCommand "${tsm-client.name}-test-cli" env ''
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
export DSM_LOG=$(mktemp -d ./dsm_log.XXXXXXXXXXX)
|
|
|
|
{ dsmc -optfile=/dev/null || true; } | tee dsmc-stdout
|
|
|
|
# does it report the correct version?
|
|
grep --fixed-strings '${versionString}' dsmc-stdout
|
|
|
|
# does it use the provided dsm.sys config file?
|
|
# if it does, it states the node's name
|
|
grep ARBITRARYNODENAME dsmc-stdout
|
|
|
|
# does it try (and fail) to connect to the server?
|
|
# if it does, it reports the "TCP/IP connection failure" error code
|
|
grep ANS1017E dsmc-stdout
|
|
grep ANS1017E $DSM_LOG/dsmerror.log
|
|
|
|
touch $out
|
|
''
|