@@ -624,32 +624,119 @@ endif
624624# Usage:
625625# make test-package # Test default package format(s) for current OS
626626# make test-package-deb # Test DEB packages (Linux)
627+ # make build-package-deb-static-smoke-app # Build and install the DEB static smoke app
628+ # make run-package-deb-static-smoke # Run the installed DEB static smoke app tests
629+ # make test-package-deb-static-smoke # Build, run, and clean up the DEB static smoke app
627630# make test-package-rpm # Test RPM packages (Linux, uses Fedora container via Docker)
628631# make test-package-rpm-native # Test RPM packages (native Fedora, for CI runners)
632+ # make build-package-rpm-native-static-smoke-app # Build and install the native RPM static smoke app
633+ # make run-package-rpm-native-static-smoke # Run the installed native RPM static smoke app tests
634+ # make test-package-rpm-native-static-smoke # Build, run, and clean up the native RPM static smoke app
629635# make test-package-pkg # Test PKG packages (macOS)
630636# make test-package-dmg # Test DMG packages (macOS)
637+ # make build-package-pkg-static-smoke-app # Build and install the PKG static smoke app
638+ # make run-package-pkg-static-smoke # Run the installed PKG static smoke app tests
639+ # make build-package-dmg-static-smoke-app # Build and install the DMG static smoke app
640+ # make run-package-dmg-static-smoke # Run the installed DMG static smoke app tests
641+ # make test-package-macos-static-smoke # Build, run, and clean up the macOS static smoke apps
631642# make test-package-msi # Test MSI packages (Windows)
643+ # make build-package-windows-static-smoke-app # Build and install the Windows static smoke app
644+ # make run-package-windows-static-smoke # Run the installed Windows static smoke app tests
645+ # make test-package-windows-static-smoke # Build, run, and clean up the Windows static smoke app
632646# =============================================================================
633647
634648SMOKE_TEST_DIR := packaging/smoke-test-app
649+ SMOKE_TEST_MAKE := $(MAKE ) -C $(SMOKE_TEST_DIR )
635650SCYLLA_SMOKE_BUILD_STATIC ?= OFF
651+ SCYLLA_SMOKE_ONLY_STATIC ?= OFF
636652SMOKE_TEST_CMAKE_FLAGS :=
637653ifeq ($(SCYLLA_SMOKE_BUILD_STATIC ) ,ON)
638654SMOKE_TEST_CMAKE_FLAGS += -DSCYLLA_SMOKE_BUILD_STATIC=ON
639655endif
656+ SMOKE_TEST_STATIC_CMAKE_FLAGS := -DSCYLLA_SMOKE_BUILD_STATIC=ON
657+ SMOKE_TEST_BUILD_FLAGS := SCYLLA_SMOKE_BUILD_STATIC=$(SCYLLA_SMOKE_BUILD_STATIC )
658+ SMOKE_TEST_RUN_FLAGS := $(SMOKE_TEST_BUILD_FLAGS ) SCYLLA_SMOKE_ONLY_STATIC=$(SCYLLA_SMOKE_ONLY_STATIC )
659+ SMOKE_TEST_STATIC_BUILD_FLAGS := SCYLLA_SMOKE_BUILD_STATIC=ON
660+ SMOKE_TEST_STATIC_RUN_FLAGS := $(SMOKE_TEST_STATIC_BUILD_FLAGS ) SCYLLA_SMOKE_ONLY_STATIC=ON
661+
662+ define smoke_test_build_package
663+ $(SMOKE_TEST_MAKE ) build-package CPACK_GENERATORS=$(1 ) $(SMOKE_TEST_BUILD_FLAGS ) CMAKE_FLAGS="$(SMOKE_TEST_CMAKE_FLAGS ) "
664+ endef
665+
666+ define smoke_test_build_package_static
667+ $(SMOKE_TEST_MAKE ) build-package CPACK_GENERATORS=$(1 ) $(SMOKE_TEST_STATIC_BUILD_FLAGS ) CMAKE_FLAGS="$(SMOKE_TEST_STATIC_CMAKE_FLAGS ) "
668+ endef
669+
670+ define smoke_test_run_package
671+ $(SMOKE_TEST_MAKE ) test-app-package $(1 ) $(SMOKE_TEST_RUN_FLAGS )
672+ endef
673+
674+ define smoke_test_run_package_static
675+ $(SMOKE_TEST_MAKE ) test-app-package $(1 ) $(SMOKE_TEST_STATIC_RUN_FLAGS )
676+ endef
677+
678+ define smoke_test_cleanup_deb
679+ $(SMOKE_TEST_MAKE ) remove-app-deb || true
680+ $(SMOKE_TEST_MAKE ) remove-driver-deb || true
681+ $(SMOKE_TEST_MAKE ) remove-driver-dev-deb || true
682+ endef
683+
684+ define smoke_test_cleanup_rpm
685+ $(SMOKE_TEST_MAKE ) remove-app-rpm || true
686+ $(SMOKE_TEST_MAKE ) remove-driver-rpm || true
687+ $(SMOKE_TEST_MAKE ) remove-driver-dev-rpm || true
688+ endef
689+
690+ define smoke_test_cleanup_pkg
691+ $(SMOKE_TEST_MAKE ) remove-app-pkg || true
692+ $(SMOKE_TEST_MAKE ) remove-driver-pkg || true
693+ $(SMOKE_TEST_MAKE ) remove-driver-dev-pkg || true
694+ endef
695+
696+ define smoke_test_cleanup_dmg
697+ $(SMOKE_TEST_MAKE ) remove-app-dmg || true
698+ $(SMOKE_TEST_MAKE ) remove-driver-dmg || true
699+ $(SMOKE_TEST_MAKE ) remove-driver-dev-dmg || true
700+ endef
701+
702+ define smoke_test_cleanup_msi
703+ $(SMOKE_TEST_MAKE ) remove-app || true
704+ $(SMOKE_TEST_MAKE ) remove-driver || true
705+ $(SMOKE_TEST_MAKE ) remove-driver-dev || true
706+ endef
640707
641708# DEB package testing (Ubuntu/Debian)
642709test-package-deb : build-package
643710 @echo " === Testing DEB packages ==="
644- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev-deb
645- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-deb
646- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package CPACK_GENERATORS= DEB SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS= " $( SMOKE_TEST_CMAKE_FLAGS ) "
647- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app-deb SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
648- $(MAKE ) -C $( SMOKE_TEST_DIR ) test-app-package SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
711+ $(SMOKE_TEST_MAKE ) install-driver-dev-deb
712+ $(SMOKE_TEST_MAKE ) install-driver-deb
713+ $(call smoke_test_build_package, DEB)
714+ $(SMOKE_TEST_MAKE ) install-app-deb
715+ $(call smoke_test_run_package, )
649716 @echo " === DEB package test completed successfully ==="
650- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-app-deb || true
651- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-deb || true
652- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-dev-deb || true
717+ $(SMOKE_TEST_MAKE ) remove-app-deb || true
718+ $(SMOKE_TEST_MAKE ) remove-driver-deb || true
719+ $(SMOKE_TEST_MAKE ) remove-driver-dev-deb || true
720+
721+ build-package-deb-static-smoke-app :
722+ @echo " === Building DEB static smoke app ==="
723+ $(SMOKE_TEST_MAKE ) install-driver-dev-deb
724+ $(SMOKE_TEST_MAKE ) install-driver-deb
725+ $(call smoke_test_build_package_static,DEB)
726+ $(SMOKE_TEST_MAKE ) install-app-deb
727+
728+ run-package-deb-static-smoke :
729+ @echo " === Running DEB static smoke test ==="
730+ $(call smoke_test_run_package_static,)
731+
732+ cleanup-package-deb-static-smoke :
733+ $(call smoke_test_cleanup_deb)
734+
735+ test-package-deb-static-smoke :
736+ $(MAKE ) build-package-deb-static-smoke-app
737+ $(MAKE ) run-package-deb-static-smoke
738+ @echo " === DEB static smoke test completed successfully ==="
739+ $(MAKE ) cleanup-package-deb-static-smoke
653740
654741# RPM package testing (runs in Fedora container for compatibility)
655742test-package-rpm : build-package
@@ -663,8 +750,8 @@ test-package-rpm: build-package
663750 bash -c ' \
664751 set -euo pipefail; \
665752 dnf -y install make cmake gcc-c++ findutils rpm-build zlib-devel; \
666- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev-rpm; \
667- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-rpm; \
753+ $(SMOKE_TEST_MAKE ) install-driver-dev-rpm; \
754+ $(SMOKE_TEST_MAKE ) install-driver-rpm; \
668755 pc_file=$$(find /usr -name "scylla-cpp-driver.pc" 2>/dev/null | head -1 ) ; \
669756 if [ -n " $$ pc_file" ]; then \
670757 pc_dir=$$(dirname "$$pc_file" ) ; \
@@ -674,8 +761,8 @@ test-package-rpm: build-package
674761 if [ -n " $$ lib_dir" ]; then \
675762 export LD_LIBRARY_PATH=" $$ {lib_dir}:$$ {LD_LIBRARY_PATH:-}" ; \
676763 fi ; \
677- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package CPACK_GENERATORS= RPM SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS= " $( SMOKE_TEST_CMAKE_FLAGS ) " ; \
678- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app-rpm; \
764+ $(call smoke_test_build_package, RPM) ; \
765+ $(SMOKE_TEST_MAKE ) install-app-rpm; \
679766 smoke_bin=$$(find /usr -name "scylla-cpp-driver-smoke-test" -type f 2>/dev/null | head -1 ) ; \
680767 if [ -z " $$ smoke_bin" ]; then \
681768 echo " ERROR: smoke-test binary not found" ; \
@@ -701,52 +788,132 @@ SCYLLA_HOST ?= 127.0.0.1
701788SKIP_DOCKER_COMPOSE ?=
702789test-package-rpm-native : build-package
703790 @echo " === Testing RPM packages (native) ==="
704- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev-rpm
705- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-rpm
706- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package CPACK_GENERATORS= RPM SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS= " $( SMOKE_TEST_CMAKE_FLAGS ) "
707- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app-rpm
708- $(MAKE ) -C $( SMOKE_TEST_DIR ) test-app-package SCYLLA_HOST=$(SCYLLA_HOST ) SKIP_DOCKER_COMPOSE=$(SKIP_DOCKER_COMPOSE ) SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
791+ $(SMOKE_TEST_MAKE ) install-driver-dev-rpm
792+ $(SMOKE_TEST_MAKE ) install-driver-rpm
793+ $(call smoke_test_build_package, RPM)
794+ $(SMOKE_TEST_MAKE ) install-app-rpm
795+ $(call smoke_test_run_package, SCYLLA_HOST=$(SCYLLA_HOST ) SKIP_DOCKER_COMPOSE=$(SKIP_DOCKER_COMPOSE ) )
709796 @echo " === RPM package test completed successfully ==="
710- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-app-rpm || true
711- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-rpm || true
712- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-dev-rpm || true
797+ $(SMOKE_TEST_MAKE ) remove-app-rpm || true
798+ $(SMOKE_TEST_MAKE ) remove-driver-rpm || true
799+ $(SMOKE_TEST_MAKE ) remove-driver-dev-rpm || true
800+
801+ build-package-rpm-native-static-smoke-app :
802+ @echo " === Building RPM packages (native static smoke app) ==="
803+ $(SMOKE_TEST_MAKE ) install-driver-dev-rpm
804+ $(SMOKE_TEST_MAKE ) install-driver-rpm
805+ $(call smoke_test_build_package_static,RPM)
806+ $(SMOKE_TEST_MAKE ) install-app-rpm
807+
808+ run-package-rpm-native-static-smoke :
809+ @echo " === Running RPM packages (native static smoke test) ==="
810+ $(call smoke_test_run_package_static,SCYLLA_HOST=$(SCYLLA_HOST ) SKIP_DOCKER_COMPOSE=$(SKIP_DOCKER_COMPOSE ) )
811+
812+ cleanup-package-rpm-native-static-smoke :
813+ $(call smoke_test_cleanup_rpm)
814+
815+ test-package-rpm-native-static-smoke :
816+ $(MAKE ) build-package-rpm-native-static-smoke-app
817+ $(MAKE ) run-package-rpm-native-static-smoke
818+ @echo " === RPM native static smoke test completed successfully ==="
819+ $(MAKE ) cleanup-package-rpm-native-static-smoke
713820
714821# macOS PKG package testing
715822test-package-pkg : build-package
716823 @echo " === Testing PKG packages ==="
717- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev-pkg
718- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-pkg
719- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package CPACK_GENERATORS= productbuild SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS= " $( SMOKE_TEST_CMAKE_FLAGS ) "
720- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app-pkg
721- $(MAKE ) -C $( SMOKE_TEST_DIR ) test-app-package SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
824+ $(SMOKE_TEST_MAKE ) install-driver-dev-pkg
825+ $(SMOKE_TEST_MAKE ) install-driver-pkg
826+ $(call smoke_test_build_package, productbuild)
827+ $(SMOKE_TEST_MAKE ) install-app-pkg
828+ $(call smoke_test_run_package, )
722829 @echo " === PKG package test completed successfully ==="
723- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-app-pkg || true
724- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-pkg || true
725- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-dev-pkg || true
830+ $(SMOKE_TEST_MAKE ) remove-app-pkg || true
831+ $(SMOKE_TEST_MAKE ) remove-driver-pkg || true
832+ $(SMOKE_TEST_MAKE ) remove-driver-dev-pkg || true
833+
834+ build-package-pkg-static-smoke-app :
835+ @echo " === Building PKG static smoke app ==="
836+ $(SMOKE_TEST_MAKE ) install-driver-dev-pkg
837+ $(SMOKE_TEST_MAKE ) install-driver-pkg
838+ $(call smoke_test_build_package_static,productbuild)
839+ $(SMOKE_TEST_MAKE ) install-app-pkg
840+
841+ run-package-pkg-static-smoke :
842+ @echo " === Running PKG static smoke test ==="
843+ $(call smoke_test_run_package_static,)
844+
845+ cleanup-package-pkg-static-smoke :
846+ $(call smoke_test_cleanup_pkg)
847+
848+ test-package-pkg-static-smoke :
849+ $(MAKE ) build-package-pkg-static-smoke-app
850+ $(MAKE ) run-package-pkg-static-smoke
851+ @echo " === PKG static smoke test completed successfully ==="
852+ $(MAKE ) cleanup-package-pkg-static-smoke
726853
727854# macOS DMG package testing
728855test-package-dmg : build-package
729856 @echo " === Testing DMG packages ==="
730- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev-dmg
731- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dmg
732- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package CPACK_GENERATORS= DragNDrop SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS= " $( SMOKE_TEST_CMAKE_FLAGS ) "
733- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app-dmg
734- $(MAKE ) -C $( SMOKE_TEST_DIR ) test-app-package SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
857+ $(SMOKE_TEST_MAKE ) install-driver-dev-dmg
858+ $(SMOKE_TEST_MAKE ) install-driver-dmg
859+ $(call smoke_test_build_package, DragNDrop)
860+ $(SMOKE_TEST_MAKE ) install-app-dmg
861+ $(call smoke_test_run_package, )
735862 @echo " === DMG package test completed successfully ==="
736- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-app-dmg || true
737- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-dmg || true
738- $(MAKE ) -C $(SMOKE_TEST_DIR ) remove-driver-dev-dmg || true
863+ $(SMOKE_TEST_MAKE ) remove-app-dmg || true
864+ $(SMOKE_TEST_MAKE ) remove-driver-dmg || true
865+ $(SMOKE_TEST_MAKE ) remove-driver-dev-dmg || true
866+
867+ build-package-dmg-static-smoke-app :
868+ @echo " === Building DMG static smoke app ==="
869+ $(SMOKE_TEST_MAKE ) install-driver-dev-dmg
870+ $(SMOKE_TEST_MAKE ) install-driver-dmg
871+ $(call smoke_test_build_package_static,DragNDrop)
872+ $(SMOKE_TEST_MAKE ) install-app-dmg
873+
874+ run-package-dmg-static-smoke :
875+ @echo " === Running DMG static smoke test ==="
876+ $(call smoke_test_run_package_static,)
877+
878+ cleanup-package-dmg-static-smoke :
879+ $(call smoke_test_cleanup_dmg)
880+
881+ test-package-dmg-static-smoke :
882+ $(MAKE ) build-package-dmg-static-smoke-app
883+ $(MAKE ) run-package-dmg-static-smoke
884+ @echo " === DMG static smoke test completed successfully ==="
885+ $(MAKE ) cleanup-package-dmg-static-smoke
739886
740887# Windows MSI package testing
741888test-package-msi : .windows-setup-wix build-package
742889 @echo " === Testing MSI packages ==="
743- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver-dev
744- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-driver
745- $(MAKE ) -C $( SMOKE_TEST_DIR ) build-package SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC ) CMAKE_FLAGS=" $( SMOKE_TEST_CMAKE_FLAGS) "
746- $(MAKE ) -C $( SMOKE_TEST_DIR ) install-app
747- $(MAKE ) -C $( SMOKE_TEST_DIR ) test-app-package SCYLLA_SMOKE_BUILD_STATIC= $( SCYLLA_SMOKE_BUILD_STATIC )
890+ $(SMOKE_TEST_MAKE ) install-driver-dev
891+ $(SMOKE_TEST_MAKE ) install-driver
892+ $(SMOKE_TEST_MAKE ) build-package $( SMOKE_TEST_BUILD_FLAGS ) CMAKE_FLAGS=" $( SMOKE_TEST_CMAKE_FLAGS) "
893+ $(SMOKE_TEST_MAKE ) install-app
894+ $(call smoke_test_run_package, )
748895 @echo " === MSI package test completed successfully ==="
749896
897+ build-package-msi-static-smoke-app : .windows-setup-wix
898+ @echo " === Building MSI static smoke app ==="
899+ $(SMOKE_TEST_MAKE ) install-driver-dev
900+ $(SMOKE_TEST_MAKE ) install-driver
901+ $(SMOKE_TEST_MAKE ) build-package $(SMOKE_TEST_STATIC_BUILD_FLAGS ) CMAKE_FLAGS=" $( SMOKE_TEST_STATIC_CMAKE_FLAGS) "
902+ $(SMOKE_TEST_MAKE ) install-app
903+
904+ run-package-msi-static-smoke :
905+ @echo " === Running MSI static smoke test ==="
906+ $(call smoke_test_run_package_static,)
907+
908+ cleanup-package-msi-static-smoke :
909+ $(call smoke_test_cleanup_msi)
910+
911+ test-package-msi-static-smoke :
912+ $(MAKE ) build-package-msi-static-smoke-app
913+ $(MAKE ) run-package-msi-static-smoke
914+ @echo " === MSI static smoke test completed successfully ==="
915+ $(MAKE ) cleanup-package-msi-static-smoke
916+
750917# Combined Linux package testing (DEB + RPM)
751918test-package-linux :
752919 $(MAKE ) test-package-deb
@@ -756,12 +923,25 @@ test-package-linux:
756923# Windows package testing (MSI)
757924test-package-windows : test-package-msi
758925
926+ build-package-windows-static-smoke-app : build-package-msi-static-smoke-app
927+
928+ run-package-windows-static-smoke : run-package-msi-static-smoke
929+
930+ cleanup-package-windows-static-smoke : cleanup-package-msi-static-smoke
931+
932+ test-package-windows-static-smoke : test-package-msi-static-smoke
933+
759934# Combined macOS package testing (PKG + DMG)
760935test-package-macos :
761936 $(MAKE ) test-package-pkg
762937 rm -rf $(SMOKE_TEST_DIR ) /build
763938 $(MAKE ) test-package-dmg
764939
940+ test-package-macos-static-smoke :
941+ $(MAKE ) test-package-pkg-static-smoke
942+ rm -rf $(SMOKE_TEST_DIR ) /build
943+ $(MAKE ) test-package-dmg-static-smoke
944+
765945# OS-specific default test-package target
766946ifeq ($(OS_TYPE ) ,macos)
767947test-package : test-package-macos
0 commit comments