Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shorten runtime of e2e tests #15497

Closed
serathius opened this issue Mar 17, 2023 · 8 comments · Fixed by #15637
Closed

Shorten runtime of e2e tests #15497

serathius opened this issue Mar 17, 2023 · 8 comments · Fixed by #15637

Comments

@serathius
Copy link
Member

What would you like to be added?

I have noticed big difference between e2e test run duration between main and release-3.5 branches.
15 minutes on release-3.5 and 40 minutes on main .

Either almost tripled number of our tests, or there is some additional overhead.
Would be great if someone could take a look into the cause.

Why is this needed?

Shorter the runtime, faster the development. Such increase is unexpected.
Could help with #15349

@kevinzs2048
Copy link
Contributor

kevinzs2048 commented Mar 30, 2023

Hi @serathius,

After doing some investigation, I found that there is difference for release-3.5 and main.
For release 3.5, the only E2E test are:
image

For Main, there are 2 test, one is etcd/tests/v3/e2e, they other one is etcd/tests/v3/common --tags=e2e.
image

The above pic I take from linux-amd64-e2e, which is usually takes more than 1720s, and it is nearly around the 1800s for the 30mins timeout.

While on PR #15349 said, on Arm64 E2E test, it is easily exceed the 30mins timeout. Below is the E2E-arm64 snapshot:
image

For Amd64/X86_64 architecture, there is also a potential risk to exceed the 30 minutes timeouts if there is hardware pressure or we adding more tests to e2e in the future.

@serathius
Copy link
Member Author

Interesting I totally didn't expect such big increase of runtime between release-3.5 and main.
Tests in etcd/tests/v3/common are not a new tests, but etcd/tests/v3/e2e tests migrated to new framework. So technically the sum of the tests on etcd/tests/v3/e2e and etcd/tests/v3/common on main branch should be around the same as etcd/tests/v3/e2e.

I think it's important to investigate why etcd/tests/v3/common take so long as with #13637 the runtime will only increase.

@chaochn47
Copy link
Member

chaochn47 commented Mar 30, 2023

Thanks! I also noticed this in recent testing work. #15242 (comment) could be a good start of runtime reduction.

@chaochn47
Copy link
Member

ETCD_VERIFY=all go test -v -run ./... --tags e2e -timeout=30m 2>&1 | tee ~/test.log
Test duration of test case including PeerTLS or PeerAutoTLS which has cluster size is 3
dev-dsk-chaochn-2c-a26acd76 % grep -E "PeerTLS|PeerAutoTLS" ~/test.log | grep "PASS"
    --- PASS: TestKVPut/PeerTLS (9.85s)
    --- PASS: TestKVPut/PeerAutoTLS (9.55s)
    --- PASS: TestKVGet/PeerTLS (9.89s)
    --- PASS: TestKVGet/PeerAutoTLS (9.90s)
    --- PASS: TestKVDelete/PeerTLS (12.61s)
    --- PASS: TestKVDelete/PeerAutoTLS (12.64s)
    --- PASS: TestLeaseGrantTimeToLive/PeerTLS (9.76s)
    --- PASS: TestLeaseGrantTimeToLive/PeerAutoTLS (9.67s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/no_leases (9.34s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/one_lease (9.56s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/many_leases (9.39s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/no_leases (9.43s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/one_lease (9.57s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/many_leases (9.59s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/PeerTLS (12.63s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/PeerAutoTLS (12.94s)
    --- PASS: TestLeaseGrantKeepAliveOnce/PeerTLS (11.77s)
    --- PASS: TestLeaseGrantKeepAliveOnce/PeerAutoTLS (11.51s)
    --- PASS: TestLeaseGrantRevoke/PeerTLS (9.54s)
    --- PASS: TestLeaseGrantRevoke/PeerAutoTLS (10.04s)
    --- PASS: TestMemberList/PeerTLS (9.53s)
    --- PASS: TestMemberList/PeerAutoTLS (7.59s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerTLS (14.83s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.42s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.33s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.42s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.83s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.43s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.33s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.53s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerTLS (14.93s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.72s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.53s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.82s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.32s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.43s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.72s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.74s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/PeerTLS (8.55s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.46s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.36s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.76s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (8.47s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.67s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (3.65s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (3.67s)
    --- PASS: TestRoleAdd_Simple/PeerTLS (9.52s)
    --- PASS: TestRoleAdd_Simple/PeerAutoTLS (9.65s)
    --- PASS: TestStatus/PeerTLS (9.53s)
    --- PASS: TestStatus/PeerAutoTLS (9.65s)
    --- PASS: TestTxnSucc/PeerTLS (9.97s)
    --- PASS: TestTxnSucc/PeerAutoTLS (9.58s)
    --- PASS: TestTxnFail/PeerTLS (9.52s)
    --- PASS: TestTxnFail/PeerAutoTLS (9.82s)
    --- PASS: TestUserAdd_Simple/PeerTLS/empty_username_not_allowed (9.42s)
    --- PASS: TestUserAdd_Simple/PeerTLS/no_password_with_noPassword_set (9.43s)
    --- PASS: TestUserAdd_Simple/PeerTLS/no_password_without_noPassword_set (10.61s)
    --- PASS: TestUserAdd_Simple/PeerTLS/regular_user_with_password (10.53s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/empty_username_not_allowed (9.53s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/no_password_with_noPassword_set (9.65s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/no_password_without_noPassword_set (10.33s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/regular_user_with_password (10.33s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/PeerTLS (11.35s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/PeerAutoTLS (11.95s)
    --- PASS: TestUserList/PeerTLS (10.56s)
    --- PASS: TestUserList/PeerAutoTLS (10.39s)
    --- PASS: TestUserDelete/PeerTLS (10.40s)
    --- PASS: TestUserDelete/PeerAutoTLS (10.40s)
    --- PASS: TestUserChangePassword/PeerTLS (12.35s)
    --- PASS: TestUserChangePassword/PeerAutoTLS (12.46s)
    --- PASS: TestWaitLeader/PeerTLS (9.67s)
    --- PASS: TestWaitLeader/PeerAutoTLS (7.57s)
    --- PASS: TestWaitLeader_MemberStop/PeerTLS (14.57s)
    --- PASS: TestWaitLeader_MemberStop/PeerAutoTLS (14.91s)
    --- PASS: TestWatch/PeerTLS (9.59s)
    --- PASS: TestWatch/PeerAutoTLS (9.79s)
Example log of TestKVGet/PeerAutoTLS
=== RUN   TestKVGet/PeerAutoTLS
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	starting server...	{"name": "TestKVGetPeerAutoTLS-test-2"}
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	starting server...	{"name": "TestKVGetPeerAutoTLS-test-0"}
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	starting server...	{"name": "TestKVGetPeerAutoTLS-test-1"}
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestKVGetPeerAutoTLS-test-0", "--listen-client-urls", "http://localhost:20000", "--advertise-client-urls", "http://localhost:20000", "--listen-peer-urls", "https://localhost:20001", "--initial-advertise-peer-urls", "https://localhost:20001", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestKVGetPeerAutoTLS1120443417/001", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-auto-tls", "--initial-cluster", "TestKVGetPeerAutoTLS-test-0=https://localhost:20001,TestKVGetPeerAutoTLS-test-1=https://localhost:20006,TestKVGetPeerAutoTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestKVGet3347053323/001", "name": "TestKVGetPeerAutoTLS-test-0", "environment-variables": ["ETCD_VERIFY=all", "PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64"]}
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestKVGetPeerAutoTLS-test-1", "--listen-client-urls", "http://localhost:20005", "--advertise-client-urls", "http://localhost:20005", "--listen-peer-urls", "https://localhost:20006", "--initial-advertise-peer-urls", "https://localhost:20006", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestKVGetPeerAutoTLS1120443417/002", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-auto-tls", "--initial-cluster", "TestKVGetPeerAutoTLS-test-0=https://localhost:20001,TestKVGetPeerAutoTLS-test-1=https://localhost:20006,TestKVGetPeerAutoTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestKVGet3347053323/001", "name": "TestKVGetPeerAutoTLS-test-1", "environment-variables": ["ETCD_VERIFY=all", "PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64"]}
    logger.go:130: 2023-04-04T06:51:49.135Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestKVGetPeerAutoTLS-test-2", "--listen-client-urls", "http://localhost:20010", "--advertise-client-urls", "http://localhost:20010", "--listen-peer-urls", "https://localhost:20011", "--initial-advertise-peer-urls", "https://localhost:20011", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestKVGetPeerAutoTLS1120443417/003", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-auto-tls", "--initial-cluster", "TestKVGetPeerAutoTLS-test-0=https://localhost:20001,TestKVGetPeerAutoTLS-test-1=https://localhost:20006,TestKVGetPeerAutoTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestKVGet3347053323/001", "name": "TestKVGetPeerAutoTLS-test-2", "environment-variables": ["ETCD_VERIFY=all", "PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64"]}
    logger.go:130: 2023-04-04T06:51:51.505Z	INFO	started server.	{"name": "TestKVGetPeerAutoTLS-test-2", "pid": 956050}
    logger.go:130: 2023-04-04T06:51:51.505Z	INFO	started server.	{"name": "TestKVGetPeerAutoTLS-test-1", "pid": 956049}
    logger.go:130: 2023-04-04T06:51:51.513Z	INFO	started server.	{"name": "TestKVGetPeerAutoTLS-test-0", "pid": 956048}
    logger.go:130: 2023-04-04T06:51:52.015Z	INFO	closing test cluster...
    logger.go:130: 2023-04-04T06:51:52.015Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-2"}
    logger.go:130: 2023-04-04T06:51:52.015Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-0"}
    logger.go:130: 2023-04-04T06:51:52.016Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-1"}
    logger.go:130: 2023-04-04T06:51:52.059Z	INFO	stopped server.	{"name": "TestKVGetPeerAutoTLS-test-2"}
    logger.go:130: 2023-04-04T06:51:52.060Z	INFO	stopped server.	{"name": "TestKVGetPeerAutoTLS-test-0"}
    logger.go:130: 2023-04-04T06:51:59.034Z	INFO	stopped server.	{"name": "TestKVGetPeerAutoTLS-test-1"}
    logger.go:130: 2023-04-04T06:51:59.034Z	INFO	closing server...	{"name": "TestKVGetPeerAutoTLS-test-0"}
    logger.go:130: 2023-04-04T06:51:59.034Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-0"}
    logger.go:130: 2023-04-04T06:51:59.034Z	INFO	removing directory	{"data-dir": "/tmp/TestKVGetPeerAutoTLS1120443417/001"}
    logger.go:130: 2023-04-04T06:51:59.035Z	INFO	closing server...	{"name": "TestKVGetPeerAutoTLS-test-1"}
    logger.go:130: 2023-04-04T06:51:59.035Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-1"}
    logger.go:130: 2023-04-04T06:51:59.035Z	INFO	removing directory	{"data-dir": "/tmp/TestKVGetPeerAutoTLS1120443417/002"}
    logger.go:130: 2023-04-04T06:51:59.036Z	INFO	closing server...	{"name": "TestKVGetPeerAutoTLS-test-2"}
    logger.go:130: 2023-04-04T06:51:59.036Z	INFO	stopping server...	{"name": "TestKVGetPeerAutoTLS-test-2"}
    logger.go:130: 2023-04-04T06:51:59.036Z	INFO	removing directory	{"data-dir": "/tmp/TestKVGetPeerAutoTLS1120443417/003"}
    logger.go:130: 2023-04-04T06:51:59.038Z	INFO	closed test cluster.
--- PASS: TestKVGet/PeerTLS (9.89s)
Test duration break down by individual test case
dev-dsk-chaochn-2c-a26acd76 % grep -E "PASS|ok " ~/test.log
--- PASS: TestAlarm (0.74s)
--- PASS: TestAlarmlistOnMemberRestart (1.77s)
--- PASS: TestAuthEnable (1.85s)
--- PASS: TestAuthDisable (6.38s)
--- PASS: TestAuthGracefulDisable (5.15s)
--- PASS: TestAuthStatus (3.58s)
--- PASS: TestAuthRoleUpdate (11.16s)
--- PASS: TestAuthUserDeleteDuringOps (7.02s)
--- PASS: TestAuthRoleRevokeDuringOps (14.12s)
--- PASS: TestAuthWriteKey (9.30s)
--- PASS: TestAuthTxn (21.71s)
    --- PASS: TestAuthTxn/NoJWT (10.79s)
    --- PASS: TestAuthTxn/JWT (10.92s)
--- PASS: TestAuthPrefixPerm (25.59s)
--- PASS: TestAuthLeaseKeepAlive (6.79s)
--- PASS: TestAuthRevokeWithDelete (7.69s)
--- PASS: TestAuthLeaseTimeToLiveExpired (9.41s)
--- PASS: TestAuthLeaseGrantLeases (8.85s)
    --- PASS: TestAuthLeaseGrantLeases/NoJWT (4.08s)
    --- PASS: TestAuthLeaseGrantLeases/JWT (4.77s)
--- PASS: TestAuthMemberAdd (6.38s)
--- PASS: TestAuthMemberRemove (10.94s)
--- PASS: TestAuthTestInvalidMgmt (4.37s)
--- PASS: TestAuthLeaseRevoke (7.18s)
--- PASS: TestAuthRoleGet (6.70s)
--- PASS: TestAuthUserGet (6.97s)
--- PASS: TestAuthRoleList (4.53s)
--- PASS: TestCompact (18.90s)
    --- PASS: TestCompact/NoPhysical (9.45s)
    --- PASS: TestCompact/Physical (9.45s)
--- PASS: TestDefragOnline (9.41s)
--- PASS: TestEndpointStatus (9.33s)
--- PASS: TestEndpointHashKV (10.23s)
--- PASS: TestEndpointHealth (9.62s)
--- PASS: TestKVPut (22.55s)
    --- PASS: TestKVPut/NoTLS (1.02s)
    --- PASS: TestKVPut/PeerTLS (9.85s)
    --- PASS: TestKVPut/PeerAutoTLS (9.55s)
    --- PASS: TestKVPut/ClientTLS (1.05s)
    --- PASS: TestKVPut/ClientAutoTLS (1.08s)
--- PASS: TestKVGet (24.70s)
    --- PASS: TestKVGet/NoTLS (1.43s)
    --- PASS: TestKVGet/PeerTLS (9.89s)
    --- PASS: TestKVGet/PeerAutoTLS (9.90s)
    --- PASS: TestKVGet/ClientTLS (1.62s)
    --- PASS: TestKVGet/ClientAutoTLS (1.86s)
--- PASS: TestKVDelete (37.25s)
    --- PASS: TestKVDelete/NoTLS (3.20s)
    --- PASS: TestKVDelete/PeerTLS (12.61s)
    --- PASS: TestKVDelete/PeerAutoTLS (12.64s)
    --- PASS: TestKVDelete/ClientTLS (3.90s)
    --- PASS: TestKVDelete/ClientAutoTLS (4.89s)
--- PASS: TestKVGetNoQuorum (6.21s)
    --- PASS: TestKVGetNoQuorum/Serializable (2.55s)
    --- PASS: TestKVGetNoQuorum/Linearizable (3.65s)
--- PASS: TestLeaseGrantTimeToLive (21.57s)
    --- PASS: TestLeaseGrantTimeToLive/NoTLS (1.02s)
    --- PASS: TestLeaseGrantTimeToLive/PeerTLS (9.76s)
    --- PASS: TestLeaseGrantTimeToLive/PeerAutoTLS (9.67s)
    --- PASS: TestLeaseGrantTimeToLive/ClientTLS (0.34s)
    --- PASS: TestLeaseGrantTimeToLive/ClientAutoTLS (0.78s)
--- PASS: TestLeaseGrantAndList (64.17s)
    --- PASS: TestLeaseGrantAndList/NoTLS/no_leases (1.01s)
    --- PASS: TestLeaseGrantAndList/NoTLS/one_lease (0.23s)
    --- PASS: TestLeaseGrantAndList/NoTLS/many_leases (0.67s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/no_leases (9.34s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/one_lease (9.56s)
    --- PASS: TestLeaseGrantAndList/PeerTLS/many_leases (9.39s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/no_leases (9.43s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/one_lease (9.57s)
    --- PASS: TestLeaseGrantAndList/PeerAutoTLS/many_leases (9.59s)
    --- PASS: TestLeaseGrantAndList/ClientTLS/no_leases (0.63s)
    --- PASS: TestLeaseGrantAndList/ClientTLS/one_lease (0.84s)
    --- PASS: TestLeaseGrantAndList/ClientTLS/many_leases (1.01s)
    --- PASS: TestLeaseGrantAndList/ClientAutoTLS/no_leases (1.13s)
    --- PASS: TestLeaseGrantAndList/ClientAutoTLS/one_lease (0.79s)
    --- PASS: TestLeaseGrantAndList/ClientAutoTLS/many_leases (0.98s)
--- PASS: TestLeaseGrantTimeToLiveExpired (37.30s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/NoTLS (4.18s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/PeerTLS (12.63s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/PeerAutoTLS (12.94s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/ClientTLS (3.81s)
    --- PASS: TestLeaseGrantTimeToLiveExpired/ClientAutoTLS (3.74s)
--- PASS: TestLeaseGrantKeepAliveOnce (31.82s)
    --- PASS: TestLeaseGrantKeepAliveOnce/NoTLS (3.04s)
    --- PASS: TestLeaseGrantKeepAliveOnce/PeerTLS (11.77s)
    --- PASS: TestLeaseGrantKeepAliveOnce/PeerAutoTLS (11.51s)
    --- PASS: TestLeaseGrantKeepAliveOnce/ClientTLS (2.87s)
    --- PASS: TestLeaseGrantKeepAliveOnce/ClientAutoTLS (2.64s)
--- PASS: TestLeaseGrantRevoke (21.89s)
    --- PASS: TestLeaseGrantRevoke/NoTLS (0.49s)
    --- PASS: TestLeaseGrantRevoke/PeerTLS (9.54s)
    --- PASS: TestLeaseGrantRevoke/PeerAutoTLS (10.04s)
    --- PASS: TestLeaseGrantRevoke/ClientTLS (0.94s)
    --- PASS: TestLeaseGrantRevoke/ClientAutoTLS (0.89s)
        Failed to defragment etcd member[http://localhost:20000]. took 2.292958ms. (rpc error: code = Unknown desc = auth: user name is empty)
        Failed to defragment etcd member[http://localhost:20005]. took 3.375109ms. (rpc error: code = Unknown desc = auth: user name is empty)
        Failed to defragment etcd member[http://localhost:20010]. took 1.885076ms. (rpc error: code = Unknown desc = auth: user name is empty)
--- PASS: TestDefragmentWithNoAuth (12.86s)
--- PASS: TestDefragmentWithInvalidAuth (11.44s)
--- PASS: TestDefragmentWithRootAuth (15.99s)
        Failed to defragment etcd member[http://localhost:20000]. took 1.68169ms. (rpc error: code = Unknown desc = auth: permission denied)
        Failed to defragment etcd member[http://localhost:20005]. took 1.462221ms. (rpc error: code = Unknown desc = auth: permission denied)
        Failed to defragment etcd member[http://localhost:20010]. took 1.510767ms. (rpc error: code = Unknown desc = auth: permission denied)
--- PASS: TestDefragmentWithUserAuth (15.98s)
--- PASS: TestHashKVWithNoAuth (12.26s)
--- PASS: TestHashKVWithInvalidAuth (11.45s)
--- PASS: TestHashKVWithRootAuth (15.88s)
--- PASS: TestHashKVWithUserAuth (15.99s)
--- PASS: TestStatusWithNoAuth (12.65s)
--- PASS: TestStatusWithInvalidAuth (11.34s)
--- PASS: TestStatusWithRootAuth (15.99s)
--- PASS: TestStatusWithUserAuth (15.86s)
--- PASS: TestMemberList (19.37s)
    --- PASS: TestMemberList/NoTLS (0.71s)
    --- PASS: TestMemberList/PeerTLS (9.53s)
    --- PASS: TestMemberList/PeerAutoTLS (7.59s)
    --- PASS: TestMemberList/ClientTLS (0.52s)
    --- PASS: TestMemberList/ClientAutoTLS (1.02s)
--- PASS: TestMemberAdd (271.94s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/NoTLS (6.01s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerTLS (14.83s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.42s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/ClientTLS (5.72s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.71s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/NoTLS (0.20s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.33s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.42s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.81s)
    --- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (1.13s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/NoTLS (5.80s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.83s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.43s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/ClientTLS (5.82s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.92s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS (1.10s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.33s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.53s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.91s)
    --- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (0.43s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/NoTLS (6.01s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerTLS (14.93s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.72s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/ClientTLS (5.72s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.92s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/NoTLS (1.10s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.53s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.82s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.62s)
    --- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (0.83s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/NoTLS (5.81s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.32s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.43s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/ClientTLS (5.42s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.33s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS (0.40s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.72s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.74s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.62s)
    --- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (1.23s)
--- PASS: TestMemberRemove (92.57s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/NoTLS (6.02s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/PeerTLS (8.55s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.46s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/ClientTLS (5.84s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.57s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/NoTLS (0.92s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.36s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.76s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.54s)
    --- PASS: TestMemberRemove/StrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (1.08s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (8.47s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.67s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (3.65s)
    --- PASS: TestMemberRemove/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (3.67s)
--- PASS: TestRoleAdd_Simple (22.02s)
    --- PASS: TestRoleAdd_Simple/NoTLS (0.90s)
    --- PASS: TestRoleAdd_Simple/PeerTLS (9.52s)
    --- PASS: TestRoleAdd_Simple/PeerAutoTLS (9.65s)
    --- PASS: TestRoleAdd_Simple/ClientTLS (0.91s)
    --- PASS: TestRoleAdd_Simple/ClientAutoTLS (1.03s)
--- PASS: TestRoleAdd_Error (0.84s)
--- PASS: TestRootRole (0.47s)
--- PASS: TestRoleGrantRevokePermission (1.01s)
--- PASS: TestRoleDelete (0.63s)
--- PASS: TestStatus (22.21s)
    --- PASS: TestStatus/NoTLS (1.00s)
    --- PASS: TestStatus/PeerTLS (9.53s)
    --- PASS: TestStatus/PeerAutoTLS (9.65s)
    --- PASS: TestStatus/ClientTLS (1.01s)
    --- PASS: TestStatus/ClientAutoTLS (1.02s)
--- PASS: TestTxnSucc (22.41s)
    --- PASS: TestTxnSucc/NoTLS (0.75s)
    --- PASS: TestTxnSucc/PeerTLS (9.97s)
    --- PASS: TestTxnSucc/PeerAutoTLS (9.58s)
    --- PASS: TestTxnSucc/ClientTLS (1.17s)
    --- PASS: TestTxnSucc/ClientAutoTLS (0.93s)
--- PASS: TestTxnFail (21.45s)
    --- PASS: TestTxnFail/NoTLS (0.58s)
    --- PASS: TestTxnFail/PeerTLS (9.52s)
    --- PASS: TestTxnFail/PeerAutoTLS (9.82s)
    --- PASS: TestTxnFail/ClientTLS (0.40s)
    --- PASS: TestTxnFail/ClientAutoTLS (1.13s)
--- PASS: TestUserAdd_Simple (93.90s)
    --- PASS: TestUserAdd_Simple/NoTLS/empty_username_not_allowed (0.39s)
    --- PASS: TestUserAdd_Simple/NoTLS/no_password_with_noPassword_set (1.10s)
    --- PASS: TestUserAdd_Simple/NoTLS/no_password_without_noPassword_set (1.20s)
    --- PASS: TestUserAdd_Simple/NoTLS/regular_user_with_password (1.89s)
    --- PASS: TestUserAdd_Simple/PeerTLS/empty_username_not_allowed (9.42s)
    --- PASS: TestUserAdd_Simple/PeerTLS/no_password_with_noPassword_set (9.43s)
    --- PASS: TestUserAdd_Simple/PeerTLS/no_password_without_noPassword_set (10.61s)
    --- PASS: TestUserAdd_Simple/PeerTLS/regular_user_with_password (10.53s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/empty_username_not_allowed (9.53s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/no_password_with_noPassword_set (9.65s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/no_password_without_noPassword_set (10.33s)
    --- PASS: TestUserAdd_Simple/PeerAutoTLS/regular_user_with_password (10.33s)
    --- PASS: TestUserAdd_Simple/ClientTLS/empty_username_not_allowed (0.89s)
    --- PASS: TestUserAdd_Simple/ClientTLS/no_password_with_noPassword_set (0.52s)
    --- PASS: TestUserAdd_Simple/ClientTLS/no_password_without_noPassword_set (1.21s)
    --- PASS: TestUserAdd_Simple/ClientTLS/regular_user_with_password (1.80s)
    --- PASS: TestUserAdd_Simple/ClientAutoTLS/empty_username_not_allowed (1.08s)
    --- PASS: TestUserAdd_Simple/ClientAutoTLS/no_password_with_noPassword_set (1.13s)
    --- PASS: TestUserAdd_Simple/ClientAutoTLS/no_password_without_noPassword_set (1.32s)
    --- PASS: TestUserAdd_Simple/ClientAutoTLS/regular_user_with_password (1.52s)
--- PASS: TestUserAdd_DuplicateUserNotAllowed (29.93s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/NoTLS (2.01s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/PeerTLS (11.35s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/PeerAutoTLS (11.95s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/ClientTLS (2.43s)
    --- PASS: TestUserAdd_DuplicateUserNotAllowed/ClientAutoTLS (2.19s)
--- PASS: TestUserList (25.38s)
    --- PASS: TestUserList/NoTLS (1.24s)
    --- PASS: TestUserList/PeerTLS (10.56s)
    --- PASS: TestUserList/PeerAutoTLS (10.39s)
    --- PASS: TestUserList/ClientTLS (1.77s)
    --- PASS: TestUserList/ClientAutoTLS (1.43s)
--- PASS: TestUserDelete (25.44s)
    --- PASS: TestUserDelete/NoTLS (1.88s)
    --- PASS: TestUserDelete/PeerTLS (10.40s)
    --- PASS: TestUserDelete/PeerAutoTLS (10.40s)
    --- PASS: TestUserDelete/ClientTLS (1.23s)
    --- PASS: TestUserDelete/ClientAutoTLS (1.53s)
--- PASS: TestUserChangePassword (34.93s)
    --- PASS: TestUserChangePassword/NoTLS (3.22s)
    --- PASS: TestUserChangePassword/PeerTLS (12.35s)
    --- PASS: TestUserChangePassword/PeerAutoTLS (12.46s)
    --- PASS: TestUserChangePassword/ClientTLS (3.76s)
    --- PASS: TestUserChangePassword/ClientAutoTLS (3.13s)
--- PASS: TestWaitLeader (19.40s)
    --- PASS: TestWaitLeader/NoTLS (0.22s)
    --- PASS: TestWaitLeader/PeerTLS (9.67s)
    --- PASS: TestWaitLeader/PeerAutoTLS (7.57s)
    --- PASS: TestWaitLeader/ClientTLS (0.75s)
    --- PASS: TestWaitLeader/ClientAutoTLS (1.18s)
--- PASS: TestWaitLeader_MemberStop (29.48s)
    --- PASS: TestWaitLeader_MemberStop/PeerTLS (14.57s)
    --- PASS: TestWaitLeader_MemberStop/PeerAutoTLS (14.91s)
--- PASS: TestWatch (22.18s)
    --- PASS: TestWatch/NoTLS (0.48s)
    --- PASS: TestWatch/PeerTLS (9.59s)
    --- PASS: TestWatch/PeerAutoTLS (9.79s)
    --- PASS: TestWatch/ClientTLS (0.69s)
    --- PASS: TestWatch/ClientAutoTLS (1.62s)
PASS
ok  	go.etcd.io/etcd/tests/v3/common	1436.424s

@serathius
Copy link
Member Author

serathius commented Apr 4, 2023

Just make ensure I understand. The conclusion is that enabling PeerTLS and PeerAutoTLS can add around 8-10 seconds to the test execution time. Is that correct? I don't think robustness tests used PeerTLS at all, so the cause might be different.

Do we know why? Could you provide etcd logs and diff between cases with PeerTLS enabled/disabled?

@chaochn47
Copy link
Member

TestMemberAdd has 2 (NotLearner/Learner) * 2 (StrictReconfigCheck / DisableStrictReconfigCheck) * 2 (WaitForQuorum / NoWaitForQuorum) * 5 (NoTLS / PeerTLS / PeerAutoTLS / ClientTLS / ClientAutoTLS) = 40 subtests !

PeerTLS / PeerAutoTLS takes up to 40% of the sub tests.

--- PASS: TestMemberAdd (268.29s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/NoTLS (5.92s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerTLS (12.62s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.92s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/ClientTLS (6.12s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.72s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/NoTLS (0.80s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.33s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.42s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/ClientTLS (1.01s)
--- PASS: TestMemberAdd/NotLearner/StrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (0.43s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/NoTLS (5.20s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.43s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.92s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/ClientTLS (6.02s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.91s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS (0.70s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.62s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (10.23s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.31s)
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (1.03s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/NoTLS (5.90s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerTLS (14.42s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.73s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/ClientTLS (5.62s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.93s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/NoTLS (0.51s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.63s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.92s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.72s)
--- PASS: TestMemberAdd/Learner/StrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (0.73s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/NoTLS (5.41s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerTLS (14.63s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/PeerAutoTLS (14.43s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/ClientTLS (5.22s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/WaitForQuorum/ClientAutoTLS (5.31s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS (0.20s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.52s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerAutoTLS (9.55s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientTLS (0.71s)
--- PASS: TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/ClientAutoTLS (0.53s)

Take TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum as an example.

NoTLS

dev-dsk-chaochn-2c-a26acd76 % go test -v -run "^TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS$" --tags e2e
=== RUN   TestMemberAdd
    before.go:36: Changing working directory to: /tmp/TestMemberAdd3067673770/001
=== RUN   TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS
    logger.go:130: 2023-04-04T17:36:04.800Z	INFO	starting server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:04.800Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "--listen-client-urls", "http://localhost:20000", "--advertise-client-urls", "http://localhost:20000", "--listen-peer-urls", "http://localhost:20001", "--initial-advertise-peer-urls", "http://localhost:20001", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS4179003399/001", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--initial-cluster", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0=http://localhost:20001", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestMemberAdd3067673770/001", "name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "environment-variables": ["PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64", "ETCD_VERIFY=all"]}
    logger.go:130: 2023-04-04T17:36:05.470Z	INFO	started server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "pid": 1644683}
    logger.go:130: 2023-04-04T17:36:05.492Z	INFO	closing test cluster...
    logger.go:130: 2023-04-04T17:36:05.492Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:05.506Z	INFO	stopped server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:05.506Z	INFO	closing server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:05.506Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:05.506Z	INFO	removing directory	{"data-dir": "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS4179003399/001"}
    logger.go:130: 2023-04-04T17:36:05.508Z	INFO	closed test cluster.
=== RUN   TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS
    logger.go:130: 2023-04-04T17:36:05.508Z	INFO	starting server...	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:05.508Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "--listen-client-urls", "http://localhost:20000", "--advertise-client-urls", "http://localhost:20000", "--listen-peer-urls", "http://localhost:20001", "--initial-advertise-peer-urls", "http://localhost:20001", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS1754410461/001", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--initial-cluster", "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0=http://localhost:20001", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestMemberAdd3067673770/001", "name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "environment-variables": ["PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64", "ETCD_VERIFY=all"]}
    logger.go:130: 2023-04-04T17:36:06.370Z	INFO	started server.	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0", "pid": 1644850}
    logger.go:130: 2023-04-04T17:36:06.392Z	INFO	closing test cluster...
    logger.go:130: 2023-04-04T17:36:06.392Z	INFO	stopping server...	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:06.407Z	INFO	stopped server.	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:06.407Z	INFO	closing server...	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:06.407Z	INFO	stopping server...	{"name": "TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS-test-0"}
    logger.go:130: 2023-04-04T17:36:06.407Z	INFO	removing directory	{"data-dir": "/tmp/TestMemberAddLearnerDisableStrictReconfigCheckNoWaitForQuorumNoTLS1754410461/001"}
    logger.go:130: 2023-04-04T17:36:06.408Z	INFO	closed test cluster.
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/NoTLS (0.71s)

PeerTLS

dev-dsk-chaochn-2c-a26acd76 % go test -v -run "^TestMemberAdd/Learner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS$" --tags e2e
=== RUN   TestMemberAdd
    before.go:36: Changing working directory to: /tmp/TestMemberAdd3007003168/001
=== RUN   TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	starting server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2"}
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	starting server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0"}
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0", "--listen-client-urls", "http://localhost:20000", "--advertise-client-urls", "http://localhost:20000", "--listen-peer-urls", "https://localhost:20001", "--initial-advertise-peer-urls", "https://localhost:20001", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/001", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-cert-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.crt", "--peer-key-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.key.insecure", "--peer-trusted-ca-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/ca.crt", "--initial-cluster", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0=https://localhost:20001,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1=https://localhost:20006,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestMemberAdd3007003168/001", "name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0", "environment-variables": ["PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64", "ETCD_VERIFY=all"]}
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2", "--listen-client-urls", "http://localhost:20010", "--advertise-client-urls", "http://localhost:20010", "--listen-peer-urls", "https://localhost:20011", "--initial-advertise-peer-urls", "https://localhost:20011", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/003", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-cert-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.crt", "--peer-key-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.key.insecure", "--peer-trusted-ca-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/ca.crt", "--initial-cluster", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0=https://localhost:20001,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1=https://localhost:20006,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestMemberAdd3007003168/001", "name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2", "environment-variables": ["PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64", "ETCD_VERIFY=all"]}
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	starting server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1"}
    logger.go:130: 2023-04-04T17:42:46.932Z	INFO	spawning process	{"args": ["/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/bin/etcd", "--name", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1", "--listen-client-urls", "http://localhost:20005", "--advertise-client-urls", "http://localhost:20005", "--listen-peer-urls", "https://localhost:20006", "--initial-advertise-peer-urls", "https://localhost:20006", "--initial-cluster-token", "new", "--data-dir", "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/002", "--snapshot-count", "10000", "--strict-reconfig-check=false", "--peer-cert-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.crt", "--peer-key-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/server.key.insecure", "--peer-trusted-ca-file", "/home/chaochn/workplace/EKS-etcd/src/EKS-etcd/tests/fixtures/ca.crt", "--initial-cluster", "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0=https://localhost:20001,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1=https://localhost:20006,TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2=https://localhost:20011", "--initial-cluster-state", "new"], "working-dir": "/tmp/TestMemberAdd3007003168/001", "name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1", "environment-variables": ["PATH=/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/bin:/home/chaochn/.gvm/gos/go1.19.7/bin:/home/chaochn/.gvm/pkgsets/go1.19.7/global/overlay/bin:/home/chaochn/.gvm/bin:/home/chaochn/.gvm/bin:/home/chaochn/go/bin/:/home/chaochn/.toolbox/bin:/home/chaochn/go/bin/:/home/chaochn/.cargo/bin:/usr/local/bin:/usr/bin:/home/chaochn/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin/:/workplace/chaochn/AWSWesleyCI/src/EKSDataPlaneProwTesterDockerImageTransform/bin:/home/chaochn/.local/bin:/apollo/env/AWSWesleyOpsTools/bin", "ETCD_UNSUPPORTED_ARCH=amd64", "ETCD_VERIFY=all"]}
    logger.go:130: 2023-04-04T17:42:49.611Z	INFO	started server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1", "pid": 1696888}
    logger.go:130: 2023-04-04T17:42:49.611Z	INFO	started server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0", "pid": 1696886}
    logger.go:130: 2023-04-04T17:42:49.622Z	INFO	started server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2", "pid": 1696887}
    logger.go:130: 2023-04-04T17:42:49.644Z	INFO	closing test cluster...
    logger.go:130: 2023-04-04T17:42:49.644Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2"}
    logger.go:130: 2023-04-04T17:42:49.644Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1"}
    logger.go:130: 2023-04-04T17:42:49.644Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0"}
    logger.go:130: 2023-04-04T17:42:49.668Z	INFO	stopped server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2"}
    logger.go:130: 2023-04-04T17:42:49.668Z	INFO	stopped server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0"}
    logger.go:130: 2023-04-04T17:42:56.663Z	INFO	stopped server.	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1"}
    logger.go:130: 2023-04-04T17:42:56.663Z	INFO	closing server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0"}
    logger.go:130: 2023-04-04T17:42:56.663Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-0"}
    logger.go:130: 2023-04-04T17:42:56.663Z	INFO	removing directory	{"data-dir": "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/001"}
    logger.go:130: 2023-04-04T17:42:56.664Z	INFO	closing server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1"}
    logger.go:130: 2023-04-04T17:42:56.665Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-1"}
    logger.go:130: 2023-04-04T17:42:56.665Z	INFO	removing directory	{"data-dir": "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/002"}
    logger.go:130: 2023-04-04T17:42:56.666Z	INFO	closing server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2"}
    logger.go:130: 2023-04-04T17:42:56.666Z	INFO	stopping server...	{"name": "TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS-test-2"}
    logger.go:130: 2023-04-04T17:42:56.666Z	INFO	removing directory	{"data-dir": "/tmp/TestMemberAddNotLearnerDisableStrictReconfigCheckNoWaitForQuorumPeerTLS1846803890/003"}
    logger.go:130: 2023-04-04T17:42:56.667Z	INFO	closed test cluster.
--- PASS: TestMemberAdd/NotLearner/DisableStrictReconfigCheck/NoWaitForQuorum/PeerTLS (9.74s)

The reason is the PeerTLS will create a 3 node cluster, during the cluster termination, the last etcd process unnecessarily trigger leader transfer until around 7 seconds timeout. The same root cause as the robustness test.

tcs := []testCase{
{
name: "NoTLS",
config: config.ClusterConfig{ClusterSize: 1},
},
{
name: "PeerTLS",
config: config.ClusterConfig{ClusterSize: 3, PeerTLS: config.ManualTLS, ClusterContext: &e2e.ClusterContext{ForceStop: true}},
},
{
name: "PeerAutoTLS",
config: config.ClusterConfig{ClusterSize: 3, PeerTLS: config.AutoTLS, ClusterContext: &e2e.ClusterContext{ForceStop: true}},
},
{
name: "ClientTLS",
config: config.ClusterConfig{ClusterSize: 1, ClientTLS: config.ManualTLS},
},
{
name: "ClientAutoTLS",
config: config.ClusterConfig{ClusterSize: 1, ClientTLS: config.AutoTLS},
},
}

image

@chaochn47
Copy link
Member

chaochn47 commented Apr 4, 2023

Another difference between e2e test and common e2e test is:

In the old e2e test cluster set up, it is by default creating a one-node cluster.

if !ret.quorum {
ret.cfg = *e2e.ConfigStandalone(ret.cfg)
}

But in common e2e test it is not.

I believe that's another place to improve. A couple of tests do not care if it is 1 node or 3 nodes cluster but to verify API correctness.

For example, Test Status with Auth

func TestStatusWithNoAuth(t *testing.T) {
testStatusWithAuth(t, false, true)
}
func TestStatusWithInvalidAuth(t *testing.T) {
testStatusWithAuth(t, true, true, WithAuth("invalid", "invalid"))
}
func TestStatusWithRootAuth(t *testing.T) {
testStatusWithAuth(t, false, false, WithAuth("root", "rootPass"))
}
func TestStatusWithUserAuth(t *testing.T) {
testStatusWithAuth(t, false, true, WithAuth("user0", "user0Pass"))
}

@chaochn47
Copy link
Member

@serathius ^^ PTAL if the reason makes sense to you, thanks!! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants