From f8267cb8f38e366f6ec35c84276fa7f227841b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:49:22 -0300 Subject: [PATCH] test(httpd): cover package activation across distros --- .../autotest/bundle/rhels_ppc_daily.bundle | 3 ++ .../autotest/bundle/rhels_ppcle_daily.bundle | 3 ++ .../autotest/bundle/rhels_x86_daily.bundle | 3 ++ .../autotest/bundle/sles_ppc_daily.bundle | 3 ++ .../autotest/bundle/sles_ppcle_daily.bundle | 3 ++ .../autotest/bundle/sles_x86_daily.bundle | 3 ++ .../autotest/bundle/ubuntu_ppcle_daily.bundle | 3 ++ .../autotest/bundle/ubuntu_x86_daily.bundle | 3 ++ xCAT-test/unit/httpd_security_packaging.t | 48 +++++++++++++++++++ 9 files changed, 72 insertions(+) create mode 100644 xCAT-test/unit/httpd_security_packaging.t diff --git a/xCAT-test/autotest/bundle/rhels_ppc_daily.bundle b/xCAT-test/autotest/bundle/rhels_ppc_daily.bundle index 50a0de914..d95863ff3 100644 --- a/xCAT-test/autotest/bundle/rhels_ppc_daily.bundle +++ b/xCAT-test/autotest/bundle/rhels_ppc_daily.bundle @@ -100,6 +100,9 @@ gettab_key_table getmacs_d getmacs_f_D getmacs_noderange +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked tabdump_servicenode lsdef_a lsdef_null diff --git a/xCAT-test/autotest/bundle/rhels_ppcle_daily.bundle b/xCAT-test/autotest/bundle/rhels_ppcle_daily.bundle index a39991440..5e1884cb6 100644 --- a/xCAT-test/autotest/bundle/rhels_ppcle_daily.bundle +++ b/xCAT-test/autotest/bundle/rhels_ppcle_daily.bundle @@ -106,6 +106,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/rhels_x86_daily.bundle b/xCAT-test/autotest/bundle/rhels_x86_daily.bundle index 608e862ee..a8a5e53fb 100644 --- a/xCAT-test/autotest/bundle/rhels_x86_daily.bundle +++ b/xCAT-test/autotest/bundle/rhels_x86_daily.bundle @@ -106,6 +106,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/sles_ppc_daily.bundle b/xCAT-test/autotest/bundle/sles_ppc_daily.bundle index fcb5b2d5c..7122a39ae 100644 --- a/xCAT-test/autotest/bundle/sles_ppc_daily.bundle +++ b/xCAT-test/autotest/bundle/sles_ppc_daily.bundle @@ -68,6 +68,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/sles_ppcle_daily.bundle b/xCAT-test/autotest/bundle/sles_ppcle_daily.bundle index db5fb3832..d24c5268c 100644 --- a/xCAT-test/autotest/bundle/sles_ppcle_daily.bundle +++ b/xCAT-test/autotest/bundle/sles_ppcle_daily.bundle @@ -72,6 +72,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/sles_x86_daily.bundle b/xCAT-test/autotest/bundle/sles_x86_daily.bundle index 33c28f32a..875c477d1 100644 --- a/xCAT-test/autotest/bundle/sles_x86_daily.bundle +++ b/xCAT-test/autotest/bundle/sles_x86_daily.bundle @@ -72,6 +72,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/ubuntu_ppcle_daily.bundle b/xCAT-test/autotest/bundle/ubuntu_ppcle_daily.bundle index b0182265c..f5aa4d2f2 100644 --- a/xCAT-test/autotest/bundle/ubuntu_ppcle_daily.bundle +++ b/xCAT-test/autotest/bundle/ubuntu_ppcle_daily.bundle @@ -48,6 +48,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/autotest/bundle/ubuntu_x86_daily.bundle b/xCAT-test/autotest/bundle/ubuntu_x86_daily.bundle index 154c66025..16681fb82 100644 --- a/xCAT-test/autotest/bundle/ubuntu_x86_daily.bundle +++ b/xCAT-test/autotest/bundle/ubuntu_x86_daily.bundle @@ -48,6 +48,9 @@ gettab_H gettab_err gettab_h gettab_key_table +httpd_security_headers_install +httpd_security_headers_tftpboot +httpd_server_banner_masked lsdef_a lsdef_null lsdef_t diff --git a/xCAT-test/unit/httpd_security_packaging.t b/xCAT-test/unit/httpd_security_packaging.t new file mode 100644 index 000000000..5e4679862 --- /dev/null +++ b/xCAT-test/unit/httpd_security_packaging.t @@ -0,0 +1,48 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +use File::Spec; +use FindBin; +use Test::More; + +my $repo_root = File::Spec->catdir( $FindBin::Bin, '..', '..' ); + +sub read_file { + my ($relative_path) = @_; + my $path = File::Spec->catfile( $repo_root, split( '/', $relative_path ) ); + open( my $fh, '<', $path ) or die "Unable to read $path: $!"; + my $contents = do { local $/; <$fh> }; + close($fh); + return $contents; +} + +my $xcat_spec = read_file('xCAT/xCAT.spec'); +like( $xcat_spec, qr{a2enmod headers}, + 'management RPM enables mod_headers where Apache requires it' ); +like( $xcat_spec, + qr{if \[ "\$1" = "1" \]; then.*?xcatconfig -i.*?else.*?xcatconfig -u -V.*?systemctl is-active --quiet "\$apachedaemon".*?systemctl reload "\$apachedaemon".*?/etc/init\.d/\$apachedaemon reload}s, + 'management RPM reloads an active Apache service after upgrades' ); +like( $xcat_spec, qr{apachedaemon='httpd'.*?apachedaemon='apache2'}s, + 'management RPM covers both EL and SUSE Apache service names' ); +like( $xcat_spec, + qr{/proc/1/root/\. 2>/dev/null.*?systemctl is-active --quiet "\$apachedaemon"}s, + 'management RPM skips service management inside image chroots' ); + +my $xcatsn_spec = read_file('xCATsn/xCATsn.spec'); +like( $xcatsn_spec, qr{a2enmod headers}, + 'service-node RPM enables mod_headers where Apache requires it' ); +like( $xcatsn_spec, + qr{# for install or upgrade restart the daemon.*?/etc/init\.d/\$apachedaemon reload.*?systemctl reload \$apacheserviceunit}s, + 'service-node RPM reloads Apache after installs and upgrades' ); + +my $xcat_postinst = read_file('xCAT/debian/postinst'); +like( $xcat_postinst, qr{a2enmod -q headers.*?/etc/init\.d/apache2 restart}s, + 'management Debian package enables mod_headers before restarting Apache' ); + +my $xcatsn_postinst = read_file('xCATsn/debian/postinst'); +like( $xcatsn_postinst, + qr{a2enmod -q headers.*?/etc/init\.d/\$apachedaemon reload}s, + 'service-node Debian package enables mod_headers before reloading Apache' ); + +done_testing();