| # This makefile includes various integration tests, and is meant to be usable |
| # in both development and deployment settings. |
| # |
| # Its interface is as follows: |
| # Exports: |
| # apache_system_tests |
| # apache_vm_system_tests (includes tests that can be run on VMs) |
| # Imports: |
| # apache_install_conf (should read OPTIONS) |
| # stop, start (to stop and start Apache) |
| # apache_debug_restart |
| # apache_debug_stop |
| # apache_debug_leak_test, apache_debug_proxy_test, apache_debug_slurp_test |
| # APACHE_PORT |
| # APACHE_HTTPS_PORT |
| # APACHE_DEBUG_PAGESPEED_CONF |
| # MOD_PAGESPEED_CACHE |
| # GIT_SRC |
| # INSTALL_DATA_DIR |
| # RCPORT |
| |
| # We want order of dependencies honored.. |
| .NOTPARALLEL : |
| |
| # Want |& support; and /bin/sh doesn't provide it at least on Ubuntu 11.04 |
| SHELL=/bin/bash |
| |
| # Make conf, log, and cache file locations accessible to apache/system_test.sh |
| export APACHE_DEBUG_PAGESPEED_CONF |
| export APACHE_LOG |
| export APACHE_DOC_ROOT |
| export MOD_PAGESPEED_CACHE |
| # TODO(jmarantz): replace MOD_PAGESPEED_CACHE with FILE_CACHE everywhere. |
| export FILE_CACHE = $(MOD_PAGESPEED_CACHE) |
| export APACHE_SECONDARY_PORT |
| export APACHE_TERTIARY_PORT |
| export SERVER_NAME = apache |
| |
| PAGESPEED_DIR = $(GIT_SRC)/pagespeed |
| |
| apache_vm_system_tests : setup_doc_root |
| $(MAKE) FAST_RESTART=1 apache_debug_smoke_test |
| $(MAKE) FAST_RESTART=1 apache_debug_downstream_caching_test |
| $(MAKE) FAST_RESTART=1 apache_debug_per_vhost_stats_test |
| $(MAKE) FAST_RESTART=1 apache_debug_memcached_test |
| $(MAKE) FAST_RESTART=1 apache_debug_redis_test |
| $(MAKE) FAST_RESTART=1 apache_debug_leak_test |
| $(MAKE) FAST_RESTART=1 apache_debug_rewrite_test |
| $(MAKE) FAST_RESTART=1 apache_debug_proxy_test |
| $(MAKE) FAST_RESTART=1 apache_debug_slurp_test |
| $(MAKE) FAST_RESTART=1 apache_debug_speling_test |
| $(MAKE) FAST_RESTART=1 apache_debug_gzip_test |
| $(MAKE) FAST_RESTART=1 apache_debug_controller_test |
| $(MAKE) FAST_RESTART=1 apache_debug_process_scope_test |
| $(MAKE) FAST_RESTART=1 apache_debug_remote_config_test |
| $(MAKE) FAST_RESTART=1 apache_debug_experiment_test |
| $(MAKE) FAST_RESTART=1 apache_debug_vhost_only_test |
| $(MAKE) FAST_RESTART=1 apache_debug_global_off_test |
| $(MAKE) FAST_RESTART=1 apache_debug_shared_mem_locks_sanity_test |
| $(MAKE) apache_debug_https_fetch_test |
| $(MAKE) FAST_RESTART=1 apache_debug_stats_logging_test |
| $(MAKE) FAST_RESTART=1 apache_debug_all_directives_test |
| $(MAKE) FAST_RESTART=1 apache_debug_unplugged_test |
| $(MAKE) apache_install_conf |
| # 'apache_install_conf' should always be last, to leave your debug |
| # Apache server in a consistent state. |
| |
| # apache_debug_serf_empty_header_test fails when testing on VMs for |
| # release builds. This appears to be due to the complicated proxy |
| # setup. |
| # TODO(jmarantz): fix this. |
| apache_system_tests : apache_vm_system_tests |
| $(MAKE) FAST_RESTART=1 apache_debug_serf_empty_header_test |
| $(MAKE) apache_install_conf |
| $(MAKE) FAST_RESTART=1 apache_debug_restart |
| |
| APACHE_HOST = localhost |
| ifeq ($(APACHE_PORT),80) |
| APACHE_SERVER = $(APACHE_HOST) |
| else |
| APACHE_SERVER = $(APACHE_HOST):$(APACHE_PORT) |
| endif |
| APACHE_SECONDARY_SERVER = $(APACHE_HOST):$(APACHE_SECONDARY_PORT) |
| |
| WGET = wget |
| WGET_PROXY = http_proxy=$(APACHE_SERVER) $(WGET) -q -O - |
| WGET_NO_PROXY = $(WGET) --no-proxy |
| export WGET |
| |
| ifeq ($(APACHE_HTTPS_PORT),) |
| APACHE_HTTPS_SERVER = |
| else ifeq ($(APACHE_HTTPS_PORT),443) |
| APACHE_HTTPS_SERVER = localhost |
| else |
| APACHE_HTTPS_SERVER = localhost:$(APACHE_HTTPS_PORT) |
| endif |
| EXAMPLE = $(APACHE_SERVER)/mod_pagespeed_example |
| EXAMPLE_IMAGE = $(EXAMPLE)/images/Puzzle.jpg.pagespeed.ce.91_WewrLtP.jpg |
| EXAMPLE_COMBINE_CSS = $(EXAMPLE)/combine_css.html |
| TEST_ROOT = $(APACHE_SERVER)/mod_pagespeed_test |
| |
| APACHE_SYSTEM_TEST = $(PAGESPEED_DIR)/apache/system_test.sh |
| APACHE_REMOTE_CONFIG_TEST = $(PAGESPEED_DIR)/system/remote_config_test.sh |
| INSTALL_DIR = $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) |
| CLEAN_SLATE_FOR_TESTS = $(INSTALL_DIR)/clean_slate_for_tests.sh |
| |
| clean_slate_for_tests : |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| # Installs debug configuration and runs a smoke test against it. |
| # This will blow away your existing pagespeed.conf, |
| # and clear the cache. It will also run with statistics off at the end, |
| # restoring it at the end |
| apache_debug_smoke_test : apache_install_conf apache_debug_install |
| @echo '***' System-test with cold cache |
| $(MAKE) stop |
| $(CLEAN_SLATE_FOR_TESTS) |
| $(MAKE) start |
| CACHE_FLUSH_TEST=on \ |
| FIRST_RUN=true \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| # |
| @echo '***' System-test with warm cache |
| CACHE_FLUSH_TEST=on \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| @echo '***' System-test with statistics off |
| mv $(APACHE_DEBUG_PAGESPEED_CONF) $(APACHE_DEBUG_PAGESPEED_CONF).save |
| sed -e "s/# ModPagespeedStatistics off/ModPagespeedStatistics off/" \ |
| < $(APACHE_DEBUG_PAGESPEED_CONF).save \ |
| > $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) stop |
| $(MAKE) start |
| CACHE_FLUSH_TEST=on \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| # |
| # Restore config |
| mv $(APACHE_DEBUG_PAGESPEED_CONF).save $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| apache_debug_remote_config_test : |
| @echo '***' Remote-config test |
| $(MAKE) stop |
| $(CLEAN_SLATE_FOR_TESTS) |
| mv $(APACHE_DEBUG_PAGESPEED_CONF) $(APACHE_DEBUG_PAGESPEED_CONF).save |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) REMOTE_CONFIG_TEST=1" |
| $(MAKE) start |
| CACHE_FLUSH_TEST=on \ |
| RCPORT=$(RCPORT) \ |
| SECONDARY_HOSTNAME=localhost:$(APACHE_SECONDARY_PORT) \ |
| FIRST_RUN=true \ |
| $(APACHE_REMOTE_CONFIG_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| # |
| # Restore config |
| mv $(APACHE_DEBUG_PAGESPEED_CONF).save $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| apache_debug_rewrite_test : rewrite_test_prepare apache_install_conf \ |
| apache_debug_restart |
| sleep 2 |
| $(WGET_NO_PROXY) -q -O - --save-headers $(EXAMPLE_IMAGE) \ |
| | head -16 | grep "Content-Type: image/jpeg" |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/mod_pagespeed_statistics \ |
| | grep cache_hits |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/shortcut.html \ |
| | grep "Filter Examples" |
| |
| rewrite_test_prepare : |
| $(eval OPTIONS+=REWRITE_TEST=1) |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| apache_debug_process_scope_test : |
| @echo '***' Process-scope test |
| $(MAKE) stop |
| $(CLEAN_SLATE_FOR_TESTS) |
| mv $(APACHE_DEBUG_PAGESPEED_CONF) $(APACHE_DEBUG_PAGESPEED_CONF).save |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) PROCESS_SCOPE_TEST=1" |
| $(MAKE) start |
| SECONDARY_HOSTNAME=localhost:$(APACHE_SECONDARY_PORT) \ |
| $(PAGESPEED_DIR)/apache/process_scope_test.sh \ |
| $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| # |
| # Restore config |
| mv $(APACHE_DEBUG_PAGESPEED_CONF).save $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| # This test checks that when mod_speling is enabled we handle the |
| # resource requests properly by nulling out request->filename. If |
| # we fail to do that then mod_speling rewrites the result to be a 300 |
| # (multiple choices). |
| apache_debug_speling_test : speling_test_prepare apache_install_conf \ |
| apache_debug_restart |
| @echo Testing compatibility with mod_speling: |
| $(WGET_NO_PROXY) -O /dev/null --save-headers $(EXAMPLE_IMAGE) 2>&1 \ |
| | head | grep "HTTP request sent, awaiting response... 200 OK" |
| |
| speling_test_prepare : |
| $(eval OPTIONS+=SPELING_TEST=1) |
| rm -f "$(APACHE_LOG)" |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| apache_debug_memcached_test : |
| $(CLEAN_SLATE_FOR_TESTS) |
| # run_program_with_memcached.sh exports $$MEMCACHED_PORT which is |
| # needed by apache_install_conf so pagespeed.conf gets the |
| # right ModPagespeedMemcachedServers setup. MEMCACHED_PORT will |
| # be different on each run, which makes it easier for people to |
| # run system-tests and unit-tests in parallel with one another. |
| $(INSTALL_DATA_DIR)/run_program_with_memcached.sh \ |
| $(MAKE) apache_debug_memcached_test_run |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| apache_debug_memcached_test_run : |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) MEMCACHED_TEST=1" |
| $(MAKE) apache_debug_restart |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| CACHE_FLUSH_TEST=on \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| apache_debug_redis_test : |
| $(CLEAN_SLATE_FOR_TESTS) |
| # run_program_with_redis.sh exports $$REDIS_PORT which is |
| # needed by apache_install_conf so pagespeed.conf gets the |
| # right redis server config. REDIS_PORT will be different |
| # on each run, which makes it easier for people to run |
| # system-tests and unit-tests in parallel with one another. |
| $(INSTALL_DATA_DIR)/run_program_with_redis.sh \ |
| $(MAKE) apache_debug_redis_test_run |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| apache_debug_redis_test_run : |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) REDIS_TEST=1" |
| $(MAKE) apache_debug_restart |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| CACHE_FLUSH_TEST=on \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| apache_debug_controller_test : |
| rm -rf $(MOD_PAGESPEED_CACHE)/* |
| $(MAKE) apache_debug_controller_test_run |
| $(MAKE) apache_debug_stop |
| [ -z "`grep leaked_rewrite_drivers $(APACHE_LOG)`" ] |
| @echo PASS |
| |
| apache_debug_controller_test_run : |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) CONTROLLER_TEST=1" |
| $(MAKE) apache_debug_restart |
| SECONDARY_HOSTNAME=localhost:$(APACHE_SECONDARY_PORT) \ |
| RUN_CONTROLLER_TEST=on \ |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| # This test checks that when ModPagespeedFetchWithGzip is enabled we |
| # fetch resources from origin with the gzip flag. Note that big.css |
| # uncompressed is 4307 bytes. As of Jan 2012 we get 339 bytes, but |
| # the compression is done by mod_deflate which might change. So we |
| # do a cumbersome range-check that the 4307 bytes gets compressed to |
| # somewhere between 200 and 500 bytes. |
| # |
| # We run the measurement proxy test here as well, as that also requires |
| # gzip to be on. |
| apache_debug_gzip_test : gzip_test_prepare apache_install_conf \ |
| apache_debug_restart |
| SECONDARY_HOSTNAME=localhost:$(APACHE_SECONDARY_PORT) \ |
| $(PAGESPEED_DIR)/apache/gzip_test.sh \ |
| $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| |
| gzip_test_prepare : |
| $(eval OPTIONS+=GZIP_TEST=1) |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| # Test to make sure the experiment framework is sending its headers. |
| # TODO(nforman): Make this run multiple times and make sure we don't *always* |
| # get the same result. |
| apache_debug_experiment_test : |
| $(MAKE) apache_debug_experiment_ga_test |
| $(MAKE) apache_debug_experiment_no_ga_test |
| |
| apache_debug_experiment_ga_test : experiment_ga_test_prepare \ |
| apache_install_conf apache_debug_restart |
| $(INSTALL_DATA_DIR)/apache_experiment_ga_test.sh $(APACHE_SERVER) |
| |
| apache_debug_experiment_no_ga_test : experiment_no_ga_test_prepare \ |
| apache_install_conf apache_debug_restart |
| $(INSTALL_DATA_DIR)/apache_experiment_no_ga_test.sh $(APACHE_SERVER) |
| |
| experiment_ga_test_prepare : |
| $(eval OPTIONS+=EXPERIMENT_GA_TEST=1) |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| experiment_no_ga_test_prepare : |
| $(eval OPTIONS+=EXPERIMENT_NO_GA_TEST=1) |
| $(CLEAN_SLATE_FOR_TESTS) |
| |
| apache_debug_downstream_caching_test : |
| $(CLEAN_SLATE_FOR_TESTS) |
| $(MAKE) apache_install_conf apache_debug_restart |
| $(INSTALL_DATA_DIR)/apache_downstream_caching_test.sh $(APACHE_SERVER) |
| |
| # Test to make sure we don't crash if we're off for global but on for vhosts. |
| # We use the stress test config as a base for that, as it has the vhosts all |
| # setup nicely; we just need to turn off ourselves for the global scope. |
| apache_debug_vhost_only_test : |
| $(MAKE) apache_install_conf \ |
| OPTIONS="$(OPTIONS) LOADTEST_TEST=1 STRESS_TEST=1" |
| echo 'ModPagespeed off' >> $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_restart |
| $(WGET_NO_PROXY) -O /dev/null --save-headers $(EXAMPLE) 2>&1 \ |
| | head | grep "HTTP request sent, awaiting response... 200 OK" |
| |
| # Regression test for serf fetching something with an empty header. |
| # We use a slurp-serving server to produce that. |
| EMPTY_HEADER_URL=http://www.modpagespeed.com/empty_header.html |
| apache_debug_serf_empty_header_test : |
| $(MAKE) apache_install_conf \ |
| OPTIONS="$(OPTIONS) LOADTEST_TEST=1 STRESS_TEST=1" \ |
| SLURP_DIR=$(INSTALL_DATA_DIR)/mod_pagespeed_test/slurp |
| $(MAKE) apache_debug_restart |
| # Make sure we can fetch a URL with empty header correctly.. |
| $(WGET_PROXY) $(EMPTY_HEADER_URL) > /dev/null |
| |
| |
| # Test to make sure we don't crash due to uninitialized statistics if we |
| # are off by default but turned on in some place. |
| apache_debug_global_off_test : |
| $(MAKE) apache_install_conf |
| echo 'ModPagespeed off' >> $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_restart |
| $(WGET_NO_PROXY) -O /dev/null --save-headers $(EXAMPLE)?PageSpeed=on 2>&1 \ |
| | head | grep "HTTP request sent, awaiting response... 200 OK" |
| |
| # Test to make sure HTTPS fetching works. |
| apache_debug_https_fetch_test : |
| $(MAKE) apache_install_conf |
| $(MAKE) apache_debug_restart |
| $(INSTALL_DATA_DIR)/apache_https_fetch_test.sh \ |
| $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| # Sanity-check that enabling shared-memory locks don't cause the |
| # system to crash, and a rewrite does successfully happen. |
| apache_debug_shared_mem_locks_sanity_test : shared_mem_locks_test_prepare \ |
| apache_install_conf apache_debug_restart |
| $(WGET_NO_PROXY) -q -O /dev/null \ |
| $(EXAMPLE_COMBINE_CSS)?PageSpeedFilters=combine_css |
| sleep 1 |
| $(WGET_NO_PROXY) -q -O - \ |
| $(EXAMPLE_COMBINE_CSS)?PageSpeedFilters=combine_css \ |
| | grep "\.pagespeed\.cc\." |
| |
| shared_mem_locks_test_prepare : |
| $(eval OPTIONS+=SHARED_MEM_LOCKS_TEST=1) |
| $(MAKE) stop |
| # "Directory not empty" failures were observed here, so add sleep to |
| # wait for pending cache-writes to finish. |
| sleep 2 |
| $(CLEAN_SLATE_FOR_TESTS) |
| $(MAKE) start |
| sleep 2 |
| |
| # Test that all directives are accepted by the options parser. |
| apache_debug_all_directives_test : |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) ALL_DIRECTIVES_TEST=1" |
| $(MAKE) apache_debug_restart |
| |
| # Test to make sure that per-vhost stats work. |
| STATS = mod_pagespeed_statistics |
| GLOBAL_STATS = mod_pagespeed_global_statistics |
| TRIM_PATH = \ |
| "mod_pagespeed_example/trim_urls.html?PageSpeedFilters=trim_urls" |
| |
| apache_debug_per_vhost_stats_test : |
| $(MAKE) apache_install_conf \ |
| OPTIONS="$(OPTIONS) PER_VHOST_STATS_TEST=1 NO_PER_VHOST_STATS_TEST=0" |
| $(MAKE) apache_debug_restart |
| @echo Fetch a trim URL example from VHost: 8080 -- that should bump |
| @echo the stat for that there + global but not on :8083 |
| $(WGET_NO_PROXY) -q -O /dev/null $(APACHE_SERVER)/$(TRIM_PATH) |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 0 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(GLOBAL_STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(GLOBAL_STATS) \ |
| | grep url_trims | grep -w 1 |
| @echo Now on :8083 as well. |
| $(WGET_NO_PROXY) -q -O /dev/null $(APACHE_SECONDARY_SERVER)/$(TRIM_PATH) |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(GLOBAL_STATS) \ |
| | grep url_trims | grep -w 2 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(GLOBAL_STATS) \ |
| | grep url_trims | grep -w 2 |
| # Without per-vhost stats. |
| $(MAKE) apache_install_conf \ |
| OPTIONS="$(OPTIONS) PER_VHOST_STATS_TEST=0 NO_PER_VHOST_STATS_TEST=1" |
| $(MAKE) apache_debug_restart |
| @echo Now try without global stats -- both should update at once. |
| $(WGET_NO_PROXY) -q -O /dev/null $(APACHE_SERVER)/$(TRIM_PATH) |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 1 |
| $(WGET_NO_PROXY) -q -O /dev/null $(APACHE_SECONDARY_SERVER)/$(TRIM_PATH) |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 2 |
| $(WGET_NO_PROXY) -q -O - $(APACHE_SECONDARY_SERVER)/$(STATS) \ |
| | grep url_trims | grep -w 2 |
| |
| # Test that statistics logging works. |
| apache_debug_stats_logging_test : |
| $(MAKE) apache_install_conf OPTIONS="$(OPTIONS) STATS_LOGGING_TEST=1" |
| $(MAKE) apache_debug_restart |
| $(APACHE_SYSTEM_TEST) $(APACHE_SERVER) $(APACHE_HTTPS_SERVER) |
| |
| # Tests that setting the root configuration 'unplugged' can't be overridden |
| # with a query-param, but can be overridden with an explicit vhost setting. |
| EXAMPLE_INDEX = mod_pagespeed_example/index.html |
| apache_debug_unplugged_test : apache_install_conf apache_debug_restart |
| $(MAKE) stop |
| mv $(APACHE_DEBUG_PAGESPEED_CONF) $(APACHE_DEBUG_PAGESPEED_CONF).save |
| # Note - there are multiple occurrences of "ModPagespeed on" in our |
| # debug pagespeed.conf. This article shows how to replace only the |
| # first one with sed: http://stackoverflow.com/questions/148451/ |
| # how-to-use-sed-to-replace-only-the-first-occurrence-in-a-file |
| sed -e '0,/ModPagespeed on/{s/ModPagespeed on/ModPagespeed unplugged/}' \ |
| < $(APACHE_DEBUG_PAGESPEED_CONF).save \ |
| > $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) start |
| # Fetching from the root should be off, even if we try to turn it on. |
| [ -z "`$(WGET) -q --save-headers -O - \ |
| $(APACHE_SERVER)/$(EXAMPLE_INDEX)?ModPagespeed=on | \ |
| grep X-Mod-Pagespeed`" ] |
| # Fetching from the secondary host should be on. |
| http_proxy=$(APACHE_SECONDARY_SERVER) $(WGET) -q --save-headers -O - \ |
| http://secondary.example.com/$(EXAMPLE_INDEX) | \ |
| grep X-Mod-Pagespeed |
| # |
| # Restore config |
| mv $(APACHE_DEBUG_PAGESPEED_CONF).save $(APACHE_DEBUG_PAGESPEED_CONF) |
| $(MAKE) apache_debug_stop |
| @echo PASS |
| |
| # Target used to populate the docroot for a webserver, including the |
| # read-only mod_pagespeed_example, mod_pagespeed_test, and do_not_modify, |
| # plus the read/write areas for cache purging and flush tests. The |
| # read-only directories are symlinked in for speed, and the read/write |
| # directories are deep-copied, but they are small. |
| setup_doc_root : |
| mkdir -p $(APACHE_DOC_ROOT) |
| ln -Tsf "$(realpath $(INSTALL_DATA_DIR))/mod_pagespeed_example" \ |
| $(APACHE_DOC_ROOT)/mod_pagespeed_example |
| ln -Tsf "$(realpath $(INSTALL_DATA_DIR))/mod_pagespeed_test" \ |
| $(APACHE_DOC_ROOT)/mod_pagespeed_test |
| ln -Tsf "$(realpath $(INSTALL_DATA_DIR))/do_not_modify" \ |
| $(APACHE_DOC_ROOT)/do_not_modify |
| rm -rf "$(APACHE_DOC_ROOT)/cache_flush" |
| cp -r "$(INSTALL_DATA_DIR)/mod_pagespeed_test/cache_flush" \ |
| $(APACHE_DOC_ROOT) |
| rm -rf "$(APACHE_DOC_ROOT)/purge" |
| cp -r "$(INSTALL_DATA_DIR)/mod_pagespeed_test/purge" $(APACHE_DOC_ROOT) |