From 574f96fba9fd01ec9725c5509f02ad13d8ab8793 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Fri, 24 Oct 2014 17:22:30 +0200 Subject: System tests for external merge --- Makefile | 33 +++++++++++++++++++++++++++++++++ test/config/frontend-1-httpd.conf | 21 +++++++++++++++++++++ test/config/frontend-1.config | 37 +++++++++++++++++++++++++++++++++++++ test/config/storage-1-httpd.conf | 21 +++++++++++++++++++++ test/config/storage-1.config | 26 ++++++++++++++++++++++++++ tools/merge.py | 2 +- tools/testcerts/roots/root1.pem | 23 +++++++++++++++++++++++ tools/testcerts/roots/root2.pem | 21 +++++++++++++++++++++ tools/testcerts/roots/root3.pem | 19 +++++++++++++++++++ 9 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 test/config/frontend-1-httpd.conf create mode 100644 test/config/frontend-1.config create mode 100644 test/config/storage-1-httpd.conf create mode 100644 test/config/storage-1.config create mode 100644 tools/testcerts/roots/root1.pem create mode 100644 tools/testcerts/roots/root2.pem create mode 100644 tools/testcerts/roots/root3.pem diff --git a/Makefile b/Makefile index aa96290..66f575f 100644 --- a/Makefile +++ b/Makefile @@ -20,3 +20,36 @@ release: printf "0" > rel/db/treesize cp -r webroot rel/catlfish test -d rel/catlfish/webroot/log || mkdir rel/catlfish/webroot/log + +tests-prepare: + -rm -r rel/known_roots + mkdir rel/known_roots + cp tools/testcerts/roots/* rel/known_roots + + mkdir -p test/nodes/frontend-1/log + mkdir -p test/nodes/storage-1/log + mkdir -p test/nodes/storage-2/log + cp test/config/frontend-1.config rel + cp test/config/frontend-1-httpd.conf rel + cp test/config/storage-1.config rel + cp test/config/storage-1-httpd.conf rel + -rm -r rel/tests + mkdir -p rel/tests/machine/machine-1/db + printf "0" > rel/tests/machine/machine-1/db/treesize + mkdir -p rel/tests/machine/machine-2/db + printf "0" > rel/tests/machine/machine-2/db/treesize + +tests-start: + (cd rel ; bin/run_erl -daemon ../test/nodes/frontend-1/ ../test/nodes/frontend-1/log/ "exec bin/erl -config frontend-1 -name frontend-1") + (cd rel ; bin/run_erl -daemon ../test/nodes/storage-1/ ../test/nodes/storage-1/log/ "exec bin/erl -config storage-1 -name storage-1") + sleep 1 + +tests-run: + (cd tools ; python testcase1.py ) || echo "Tests failed" + +tests-stop: + sleep 5 + echo "halt()." | ./rel/bin/to_erl test/nodes/frontend-1/ + echo "halt()." | ./rel/bin/to_erl test/nodes/storage-1/ + +tests: tests-prepare tests-start tests-run tests-stop diff --git a/test/config/frontend-1-httpd.conf b/test/config/frontend-1-httpd.conf new file mode 100644 index 0000000..70f91ee --- /dev/null +++ b/test/config/frontend-1-httpd.conf @@ -0,0 +1,21 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. +[ + {port, 8082}, + {bind_address, {127, 0, 0, 1}}, + {server_name, "flimsy"}, + {server_root, "catlfish/webroot"}, + {document_root, "catlfish/webroot/docroot"}, + {modules, [mod_alias, mod_auth, mod_esi, mod_get, mod_head, + mod_log, mod_disk_log]}, + {erl_script_alias, {"/ct", [frontend]}}, + {erl_script_nocache, true}, + {error_log, "log/error"}, + {security_log, "log/security"}, + {transfer_log, "log/transfer"}, + {socket_type, + {essl, % See ssl(3erl) for SSL options. + [{certfile, "catlfish/webroot/certs/webcert.pem"}, + {keyfile, "catlfish/webroot/keys/webkey.pem"}, + {cacertfile, "catlfish/webroot/certs/webcert.pem"}]}} +]. diff --git a/test/config/frontend-1.config b/test/config/frontend-1.config new file mode 100644 index 0000000..4505581 --- /dev/null +++ b/test/config/frontend-1.config @@ -0,0 +1,37 @@ +%% catlfish configuration file (-*- erlang -*-) + +[{sasl, + [{sasl_error_logger, false}, + {errlog_type, error}, + {error_logger_mf_dir, "log"}, + {error_logger_mf_maxbytes, 10485760}, % 10 MB + {error_logger_mf_maxfiles, 10}]}, + {inets, + [{services, + [{httpd, [{proplist_file, "frontend-1-httpd.conf"}]}]}]}, + {catlfish, + [{known_roots_path, "known_roots"}, + {https_servers, + [{"127.0.0.1", 8080, v1} + ]}, + {https_certfile, "catlfish/webroot/certs/webcert.pem"}, + {https_keyfile, "catlfish/webroot/keys/webkey.pem"}, + {https_cacertfile, "catlfish/webroot/certs/webcert.pem"} + ]}, + {lager, + [{handlers, + [{lager_console_backend, info}, + {lager_file_backend, [{file, "frontend-1-error.log"}, {level, error}]}, + {lager_file_backend, [{file, "frontend-1-debug.log"}, {level, debug}]}, + {lager_file_backend, [{file, "frontend-1-console.log"}, {level, info}]} + ]} + ]}, + {plop, + [{entry_root_path, "tests/machine/machine-1/db/certentries/"}, + {index_path, "tests/machine/machine-1/db/index"}, + {entryhash_root_path, "tests/machine/machine-1/db/entryhash/"}, + {treesize_path, "tests/machine/machine-1/db/treesize"}, + {indexforhash_root_path, "tests/machine/machine-1/db/certindex/"}, + {storage_nodes, ["https://127.0.0.1:8081/ct/storage/"]}, + {storage_nodes_quorum, 1} + ]}]. diff --git a/test/config/storage-1-httpd.conf b/test/config/storage-1-httpd.conf new file mode 100644 index 0000000..2f271f8 --- /dev/null +++ b/test/config/storage-1-httpd.conf @@ -0,0 +1,21 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. +[ + {port, 8081}, + {bind_address, {127, 0, 0, 1}}, + {server_name, "flimsy"}, + {server_root, "catlfish/webroot"}, + {document_root, "catlfish/webroot/docroot"}, + {modules, [mod_alias, mod_auth, mod_esi, mod_get, mod_head, + mod_log, mod_disk_log]}, + {erl_script_alias, {"/ct", [storage]}}, + {erl_script_nocache, true}, + {error_log, "log/error_storage"}, + {security_log, "log/security_storage"}, + {transfer_log, "log/transfer_storage"}, + {socket_type, + {essl, % See ssl(3erl) for SSL options. + [{certfile, "catlfish/webroot/certs/webcert.pem"}, + {keyfile, "catlfish/webroot/keys/webkey.pem"}, + {cacertfile, "catlfish/webroot/certs/webcert.pem"}]}} +]. diff --git a/test/config/storage-1.config b/test/config/storage-1.config new file mode 100644 index 0000000..5b67bbf --- /dev/null +++ b/test/config/storage-1.config @@ -0,0 +1,26 @@ +%% catlfish configuration file (-*- erlang -*-) + +[{sasl, + [{sasl_error_logger, false}, + {errlog_type, error}, + {error_logger_mf_dir, "log"}, + {error_logger_mf_maxbytes, 10485760}, % 10 MB + {error_logger_mf_maxfiles, 10}]}, + {inets, + [{services, + [{httpd, [{proplist_file, "storage-1-httpd.conf"}]}]}]}, + {lager, + [{handlers, + [{lager_console_backend, info}, + {lager_file_backend, [{file, "storage-1-error.log"}, {level, error}]}, + {lager_file_backend, [{file, "storage-1-debug.log"}, {level, debug}]}, + {lager_file_backend, [{file, "storage-1-console.log"}, {level, info}]} + ]} + ]}, + {plop, + [{entry_root_path, "tests/machine/machine-1/db/certentries/"}, + {index_path, "tests/machine/machine-1/db/index"}, + {newentries_path, "tests/machine/machine-1/db/newentries"}, + {entryhash_root_path, "tests/machine/machine-1/db/entryhash/"}, + {treesize_path, "tests/machine/machine-1/db/treesize"}, + {indexforhash_root_path, "tests/machine/machine-1/db/certindex/"}]}]. diff --git a/tools/merge.py b/tools/merge.py index 7120d04..14466ff 100755 --- a/tools/merge.py +++ b/tools/merge.py @@ -10,7 +10,7 @@ import urllib import urllib2 import sys -frontendnodes = ["https://127.0.0.1:8080/"] +frontendnodes = ["https://127.0.0.1:8082/"] storagenodes = ["https://127.0.0.1:8081/"] chainsdir = "../rel/mergedb/chains" diff --git a/tools/testcerts/roots/root1.pem b/tools/testcerts/roots/root1.pem new file mode 100644 index 0000000..e077900 --- /dev/null +++ b/tools/testcerts/roots/root1.pem @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- diff --git a/tools/testcerts/roots/root2.pem b/tools/testcerts/roots/root2.pem new file mode 100644 index 0000000..bdb6474 --- /dev/null +++ b/tools/testcerts/roots/root2.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- diff --git a/tools/testcerts/roots/root3.pem b/tools/testcerts/roots/root3.pem new file mode 100644 index 0000000..81c8a7d --- /dev/null +++ b/tools/testcerts/roots/root3.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- -- cgit v1.1