summaryrefslogtreecommitdiffstats
path: root/src/civetweb/test/all_build_flags.pl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/civetweb/test/all_build_flags.pl
parentInitial commit. (diff)
downloadceph-upstream/16.2.11+ds.tar.xz
ceph-upstream/16.2.11+ds.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/civetweb/test/all_build_flags.pl')
-rwxr-xr-xsrc/civetweb/test/all_build_flags.pl28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/civetweb/test/all_build_flags.pl b/src/civetweb/test/all_build_flags.pl
new file mode 100755
index 000000000..ee225f9a2
--- /dev/null
+++ b/src/civetweb/test/all_build_flags.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+
+@flags = ("NO_POPEN", "NO_SSL", "NDEBUG", "DEBUG", "NO_CGI");
+my $num_flags = @flags;
+
+sub fail {
+ print "FAILED: @_\n";
+ exit 1;
+}
+
+my $platform = $ARGV[0] || "linux";
+
+for (my $i = 0; $i < 2 ** $num_flags; $i++) {
+ my $bitmask = sprintf("%*.*b", $num_flags, $num_flags, $i);
+ my @combination = ();
+ for (my $j = 0; $j < $num_flags; $j++) {
+ push @combination, $flags[$j] if substr($bitmask, $j, 1);
+ }
+ my $defines = join(" ", map { "-D$_" } @combination);
+ my $cmd = "CFLAGS=\"$defines\" make clean $platform >/dev/null";
+ system($cmd) == 0 or fail "build failed: $_";
+ print "Build succeeded, flags: [$defines]\n";
+ system("perl test/test.pl basic_tests >/dev/null") == 0
+ or fail "basic tests";
+ print "Basic tests: OK\n";
+}
+
+print "PASS: All builds passed!\n";