Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /usr/share/doc/proftpd-doc/howto/ drwxr-xr-x |
Viewing file: Select action/file-type: ProFTPD: Testsuite
The proftpd source code is accompanied by a testsuite, for testing various
features and functionality. At present, the testsuite is divided into two
main parts: the API-level tests, and the integration tests. The API tests
are written in C, and exercise the various APIs that proftpd provides to
module developers. The integration tests are currently written in Perl, and
seek to check a compiled
In order to run the testsuite, you must configure your proftpd build so that
the testsuite is prepared. You do this by using the $ ./configure --enable-tests ...
API Tests http://check.sourceforge.net/This library must be installed on your machine in order to run the API tests. When the --enable-tests configure option is used, proftpd's
configure script will check for libcheck, and will fail unless the library
is present. If no libcheck is found and you've used
--enable-tests , you will see:
checking for tcase_create in -lcheck... no configure: error: libcheck support, required for tests, not present -- abortingNote that, if necessary, the --with-includes and
--with-libraries configure options can be used to specify the
locations of the libcheck headers and libraries.
To run the testsuite, use the $ ./configure --enable-tests ... $ make ... $ make check ... $ ./api-tests Running suite(s): pool array str sets timers table var event env version feat netaddr netacl class regexp expr scoreboard modules 100%: Checks: 140, Failures: 0, Errors: 0The make check will also go on to run the integration tests,
if the API tests all pass.
If one of the API tests fails, you will see an error message like: 99%: Checks: 140, Failures: 1, Errors: 0 api/env.c:53:F:base:env_get_test:0: Failed to handle null arguments ------------------------------------------------- FAILED 1 test Please send email to: proftp-devel@lists.sourceforge.net containing the `api-tests.log' file (in the tests/ directory) and the output from running `proftpd -V' -------------------------------------------------Please do follow those instructions; you will be helping in proftpd development!
Expected Failures
Most notably, some of the most brittle tests make assumptions about the
host's 127.0.0.1 some.other.name localhostThen the API tests may fail with errors like this: 98%: Checks: 152, Failures: 2, Errors: 0 api/netaddr.c:344:F:base:netaddr_get_dnsstr_test:0: Expected 'localhost or localhost.localdomain', got 'some.other.name' api/netacl.c:535:F:base:netacl_match_test:0: Failed to positively match ACL to addr: No such file or directoryIf this is the case, it is an expected failure; please do not report the issue as a bug. (Unfortunately, I have not been able to think of a good solution/workaround for these situations other than ignoring the test failure, but I would rather not do that if possible.)
Integration Tests $ perl -MTest::Unit -e 'print $Test::Unit::VERSION, "\n";' 0.14
To run the integration tests manually, use the $ cd tests/ $ perl tests.pl t/logins.....................ok t/commands/user..............ok t/commands/pass..............ok t/commands/pwd...............ok t/commands/cwd...............ok t/commands/cdup..............ok t/commands/syst..............ok t/commands/type..............ok t/commands/mkd...............ok t/commands/rmd...............ok t/commands/dele..............ok t/commands/mdtm..............ok t/commands/size..............ok t/commands/mode..............ok t/commands/stru..............ok t/commands/allo..............ok t/commands/noop..............ok t/commands/feat..............ok t/commands/help..............ok t/commands/quit..............ok t/commands/rnfr..............ok t/commands/rnto..............ok t/commands/rest..............ok t/commands/pasv..............ok t/commands/epsv..............ok t/commands/port..............ok t/commands/eprt..............ok t/commands/nlst..............ok t/commands/list..............ok t/commands/retr..............ok t/commands/stor..............ok t/commands/appe..............ok t/config/displayconnect......ok t/config/displaylogin........ok t/config/maxloginattempts....ok t/config/serverident.........ok All tests successful. Files=37, Tests=141, 160 wallclock secs ( 4.33 cusr + 4.74 csys = 9.07 CPU)
Some of the integration require root privileges in order to perform the
test properly, e.g. for
Adding New Tests
The API tests driver, $ make check $ cd tests/ $ PR_TEST_SUITE=pool ./api-tests Running suite(s): pool 100%: Checks: 5, Failures: 0, Errors: 0This way, when you are adding to an existing test case or adding a new test case to an existing suite, you need not run the entire API testsuite in order to run your changes. |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0038 ]-- |