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.