1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source.  A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright 2021 Tintri by DDN, Inc. All rights reserved.
14#
15
16SMB Server Test Suite README
17
181. Building and installing the SMB Server Test Suite
192. Running the SMB Server Test Suite
203. Test Results
21
22--------------------------------------------------------------------------------
23
241. Building and installing the SMB Server Test Suite
25
26The SMB Server test suite uses external programs including:
27	smbtorture (and more to come)
28which is installed via a package dependency on:
29	service/network/samba
30Those are run by python and ksh wrappers found here.
31
32To build, just do:
33	cd $SRC/test/smbsrv-tests
34	make install
35
36To install the full suite, run:
37	pkg install pkg:/system/test/smbsrvtest
38
39--------------------------------------------------------------------------------
40
412. Preparing the SMB Server Share
42
43When workgroup mode is used, make sure the pam_smb_passwd module is
44configured in /etc/pam.conf or in /etc/pam.d:
45
46other   password required       pam_smb_passwd.so.1 nowarn
47
48Add test user:
49# useradd test
50# smbadm enable-user test
51# passwd test
52
53If needed, add admin user as shown above, and add it to smb group:
54# smbadm add-member -m admin@<hostname> administrators
55
56Set smb default settings:
57
58# sharectl set -p signing_required=false smb
59# sharectl set -p signing_enabled=true smb
60# svcadm restart network/smb/server
61
62Create dataset(s):
63
64Some smbtorture tests do rely on recordsize 4k.
65
66# zfs create -o recordsize=4k -o casesensitivity=mixed -o nbmand=on \
67  <pool>/test
68
69Set permissions:
70
71# chmod A=everyone@:full_set:fd:allow /<path to mounpoint>/test
72
73Create required snapshots (WPTS needs exactly 3 snapshots):
74
75# zfs snapshot <pool>/test@a
76# zfs snapshot <pool>/test@b
77# zfs snapshot <pool>/test@c
78
79Activate smb share:
80
81# zfs set sharesmb=name=test <pool>/test
82
83--------------------------------------------------------------------------------
84
853. Running the SMB Server Test Suite
86
87The default configuration:
88	/opt/smbsrv-tests/include/default.cfg
89runs tests against a server instance on "localhost",
90using a share named "test" and user=test, pw=test
91
92It's common to copy that default.cfg to something new
93and modify the SMBT_... variables to specify different
94host, share, user, etc.
95
96To run all tests using the default configuration run:
97	/opt/smbsrv-tests/bin/smbsrvtests
98
99To run all tests using a different configuration:
100	/opt/smbsrv-tests/bin/smbsrvtests -c config_file
101
102You can also run individual tests found under:
103	/opt/smbsrv-tests/tests/*
104For example:
105	/opt/smbsrv-tests/tests/smbtorture/runst-smb2
106
107These take similar options (eg. -c config_file).
108
109To run only a subset of the tests, you can pass match patterns
110as additional arguments to the individual test, eg
111	/opt/smbsrv-tests/tests/smbtorture/runst-smb2 smb2.lease
112
113--------------------------------------------------------------------------------
114
1154. Test Results
116
117While the SMB Server Test Suite is running, one informational line is
118printed for each test, ending with one of:
119	PASS, FAIL, SKIP, KILLED, UNKNOWN
120
121The test outputs can be found in:
122	/var/tmp/test_results/smbsrv-tests/
123For example:
124	smbtor-smb2-20210317T162827.summary
125	smbtor-smb2-20210317T162827.log
126
127The *.summary file is the same as what's shown while the test runs.
128The *.log file is the detailed output from the test program(s).
129