From aab6cbf96fca6bf7f68bfb0feaea35dea0cbd7ce Mon Sep 17 00:00:00 2001 From: Philip O'Toole Date: Tue, 4 Apr 2023 09:44:05 -0400 Subject: [PATCH] Adv tests into own file --- .circleci/config.yml | 23 ++++++++++++ system_test/e2e/multi_node.py | 40 --------------------- system_test/e2e/multi_node_adv.py | 60 +++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 40 deletions(-) create mode 100644 system_test/e2e/multi_node_adv.py diff --git a/.circleci/config.yml b/.circleci/config.yml index bc20b8f2..f6bf3d82 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -102,6 +102,28 @@ jobs: RQLITED_PATH: /home/circleci/go/bin/rqlited resource_class: large + end_to_end_multi_adv: + docker: + - image: cimg/go:1.20.0 + steps: + - checkout + - restore_cache: + keys: + - go-mod-v4-{{ checksum "go.sum" }} + - run: sudo apt-get update + - run: sudo apt-get install python3 + - run: sudo apt install python3-pip + - run: python3 -m pip install requests + - run: go version + - run: go get -t -d -v ./... + - run: go install -tags osusergo,netgo,sqlite_omit_load_extension + -ldflags="-extldflags=-static" ./... + - run: + command: python3 system_test/e2e/multi_node_adv.py + environment: + RQLITED_PATH: /home/circleci/go/bin/rqlited + resource_class: large + end_to_end_autoclustering: docker: - image: cimg/go:1.20.0 @@ -134,5 +156,6 @@ workflows: - race - end_to_end_single - end_to_end_multi + - end_to_end_multi_adv - end_to_end_joining - end_to_end_autoclustering diff --git a/system_test/e2e/multi_node.py b/system_test/e2e/multi_node.py index a41d35e2..fff6d8e1 100644 --- a/system_test/e2e/multi_node.py +++ b/system_test/e2e/multi_node.py @@ -186,46 +186,6 @@ class TestEndToEndEncryptedNode(TestEndToEnd): n2.wait_for_leader() self.cluster = Cluster([n0, n1, n2]) - -class TestEndToEndAdvAddr(TestEndToEnd): - def setUp(self): - n0 = Node(RQLITED_PATH, '0', - api_addr="0.0.0.0:4001", api_adv="localhost:4001", - raft_addr="0.0.0.0:4002", raft_adv="localhost:4002") - n0.start() - n0.wait_for_leader() - - n1 = Node(RQLITED_PATH, '1') - n1.start(join=n0.APIAddr()) - n1.wait_for_leader() - - n2 = Node(RQLITED_PATH, '2') - n2.start(join=n0.APIAddr()) - n2.wait_for_leader() - - self.cluster = Cluster([n0, n1, n2]) - -class TestEndToEndAdvAddrEncryptedNode(TestEndToEnd): - def setUp(self): - certFile = write_random_file(x509cert) - keyFile = write_random_file(x509key) - - n0 = Node(RQLITED_PATH, '0', - api_addr="0.0.0.0:4001", api_adv="localhost:4001", - raft_addr="0.0.0.0:4002", raft_adv="localhost:4002", - node_cert=certFile, node_key=keyFile, node_no_verify=True) - n0.start() - n0.wait_for_leader() - - n1 = Node(RQLITED_PATH, '1', node_cert=certFile, node_key=keyFile, node_no_verify=True) - n1.start(join=n0.APIAddr()) - n1.wait_for_leader() - - n2 = Node(RQLITED_PATH, '2', node_cert=certFile, node_key=keyFile, node_no_verify=True) - n2.start(join=n0.APIAddr()) - n2.wait_for_leader() - - self.cluster = Cluster([n0, n1, n2]) class TestClusterRecovery(unittest.TestCase): '''Test that a cluster can recover after all Raft network addresses change''' diff --git a/system_test/e2e/multi_node_adv.py b/system_test/e2e/multi_node_adv.py new file mode 100644 index 00000000..9db6bb7b --- /dev/null +++ b/system_test/e2e/multi_node_adv.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# +# End-to-end testing using actual rqlited binary. +# +# To run a specific test, execute +# +# python system_test/full_system_test.py Class.test + +import os +import unittest + +from certs import x509cert, x509key +from helpers import Node, Cluster, write_random_file +from multi_node import TestEndToEnd + +RQLITED_PATH = os.environ['RQLITED_PATH'] + +class TestEndToEndAdvAddr(TestEndToEnd): + def setUp(self): + n0 = Node(RQLITED_PATH, '0', + api_addr="0.0.0.0:4001", api_adv="localhost:4001", + raft_addr="0.0.0.0:4002", raft_adv="localhost:4002") + n0.start() + n0.wait_for_leader() + + n1 = Node(RQLITED_PATH, '1') + n1.start(join=n0.APIAddr()) + n1.wait_for_leader() + + n2 = Node(RQLITED_PATH, '2') + n2.start(join=n0.APIAddr()) + n2.wait_for_leader() + + self.cluster = Cluster([n0, n1, n2]) + +class TestEndToEndAdvAddrEncryptedNode(TestEndToEnd): + def setUp(self): + certFile = write_random_file(x509cert) + keyFile = write_random_file(x509key) + + n0 = Node(RQLITED_PATH, '0', + api_addr="0.0.0.0:4001", api_adv="localhost:4001", + raft_addr="0.0.0.0:4002", raft_adv="localhost:4002", + node_cert=certFile, node_key=keyFile, node_no_verify=True) + n0.start() + n0.wait_for_leader() + + n1 = Node(RQLITED_PATH, '1', node_cert=certFile, node_key=keyFile, node_no_verify=True) + n1.start(join=n0.APIAddr()) + n1.wait_for_leader() + + n2 = Node(RQLITED_PATH, '2', node_cert=certFile, node_key=keyFile, node_no_verify=True) + n2.start(join=n0.APIAddr()) + n2.wait_for_leader() + + self.cluster = Cluster([n0, n1, n2]) + +if __name__ == "__main__": + unittest.main(verbosity=2) +