You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jf...@apache.org on 2026/08/21 08:10:10 UTC
svn commit: r1937281 - httpd/httpd/trunk/test
Author: jfclere
Date: Fri Aug 21 08:10:10 2026
New Revision: 1937281
Log:
get a description of the different testsuite we have for the moment.
Added:
httpd/httpd/trunk/test/pyhttpd_vs_pytest_suite.txt
Added: httpd/httpd/trunk/test/pyhttpd_vs_pytest_suite.txt
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ httpd/httpd/trunk/test/pyhttpd_vs_pytest_suite.txt Fri Aug 21 08:10:10 2026 (r1937281)
@@ -0,0 +1,37 @@
+pyhttpd vs apache_pytest — framework comparison
+
+Configuration. pyhttpd reads a config.ini file generated by autoconf, with
+paths filled in from @prefix@, @bindir@, etc. apache_pytest takes everything
+from pytest CLI options (--httpd, --apxs, --conf).
+
+Server lifecycle. pyhttpd starts and stops a separate httpd per test package.
+Each package subclasses HttpdTestSetup/HttpdTestEnv and controls its own server
+via apachectl. apache_pytest runs a single shared httpd for the entire session,
+managed directly without apachectl.
+
+Module loading. In pyhttpd, each test package declares the modules it needs in
+its *TestSetup subclass using add_modules(). In apache_pytest, a single config
+probes the installed httpd at startup and loads all available modules.
+
+HTTP client. pyhttpd tests call curl, nghttp, and h2load as external
+subprocesses. apache_pytest uses httpx, a Python HTTP library running
+in-process.
+
+SSL and certificates. pyhttpd generates certificates using the cryptography
+and pyopenssl Python libraries. apache_pytest has its own sslca.py that shells
+out to the OpenSSL CLI.
+
+Test structure. pyhttpd test packages each have their own env.py with a
+subclass of HttpdTestEnv and a per-package conftest.py that sets up and tears
+down the server. apache_pytest tests are flat files using shared session-scoped
+fixtures (http, config, server) and declarative need_module markers.
+
+Config customization. pyhttpd injects directives via add_httpd_conf() and
+copies template files from source directories. apache_pytest uses a
+template-based t/conf/httpd.conf with IfModule guards and .htaccess files.
+
+External tool dependencies. pyhttpd requires curl, nghttp, and h2load on
+PATH. apache_pytest has no external tool dependencies beyond Python packages.
+
+Port assignment. pyhttpd uses fixed ports defined in config.ini (5001-5100).
+apache_pytest assigns ports dynamically.