24 #include <gmock/gmock.h>
25 #include <gtest/gtest.h>
108 TlsCertificatesWatcherInterface {
127 updated_identity =
std::move(*key_cert_pairs);
146 &identity_error_str));
179 bool root_being_watched,
180 bool identity_being_watched) {
182 identity_being_watched);
195 absl::make_unique<TlsCertificatesTestWatcher>(&
watchers_.back());
249 watcher_state_1->GetCredentialQueue(),
256 watcher_state_1->GetCredentialQueue(),
265 watcher_state_1->GetCredentialQueue(),
269 CancelWatch(watcher_state_1);
274 WatcherState* watcher_state_1 =
281 WatcherState* watcher_state_2 =
305 watcher_state_1->GetCredentialQueue(),
310 watcher_state_2->GetCredentialQueue(),
315 CancelWatch(watcher_state_1);
319 CancelWatch(watcher_state_2);
328 WatcherState* watcher_state_1 =
335 WatcherState* watcher_state_2 =
355 watcher_state_1->GetCredentialQueue(),
365 watcher_state_2->GetCredentialQueue(),
370 CancelWatch(watcher_state_1);
374 CancelWatch(watcher_state_2);
382 AddAndCancelFirstWatcherForSameRootAndIdentityCertName) {
394 watcher_state_1->GetCredentialQueue(),
399 CancelWatch(watcher_state_1);
405 AddAndCancelFirstWatcherForIdentityCertNameWithRootBeingWatched) {
407 WatcherState* watcher_state_1 = MakeWatcher(
kCertName1, absl::nullopt);
411 WatcherState* watcher_state_2 = MakeWatcher(absl::nullopt,
kCertName1);
445 watcher_state_2->cert_update_queue.clear();
447 CancelWatch(watcher_state_2);
451 CancelWatch(watcher_state_1);
457 AddAndCancelFirstWatcherForRootCertNameWithIdentityBeingWatched) {
459 WatcherState* watcher_state_1 = MakeWatcher(absl::nullopt,
kCertName1);
463 WatcherState* watcher_state_2 = MakeWatcher(
kCertName1, absl::nullopt);
498 CancelWatch(watcher_state_2);
502 CancelWatch(watcher_state_1);
508 RemoveAllWatchersForCertNameAndAddAgain) {
521 CancelWatch(watcher_state_2);
524 CancelWatch(watcher_state_1);
537 watcher_state_3->GetCredentialQueue(),
542 CancelWatch(watcher_state_3);
555 CancelWatch(watcher_state_1);
567 auto verify_function = [
this](
std::string cert_name) {
568 WatcherState* watcher_state_1 = MakeWatcher(cert_name, cert_name);
571 watcher_state_1->GetCredentialQueue(),
575 CancelWatch(watcher_state_1);
580 std::vector<std::thread>
threads;
582 for (
int i = 0;
i < 1000; ++
i) {
606 watcher_state_1->GetCredentialQueue(),
610 CancelWatch(watcher_state_1);
612 WatcherState* watcher_state_2 = MakeWatcher(
kRootCert2Name, absl::nullopt);
617 WatcherState* watcher_state_3 =
624 CancelWatch(watcher_state_2);
625 CancelWatch(watcher_state_3);
629 SetErrorForCertForBothRootAndIdentity) {
646 watcher_state_1->GetErrorQueue(),
655 distributor_.CancelTlsCertificatesWatch(watcher_state_1->watcher);
656 EXPECT_EQ(watcher_state_1->watcher,
nullptr);
661 WatcherState* watcher_state_1 = MakeWatcher(
kCertName1, absl::nullopt);
680 CancelWatch(watcher_state_1);
682 WatcherState* watcher_state_2 = MakeWatcher(absl::nullopt,
kCertName1);
701 CancelWatch(watcher_state_2);
705 SetErrorForIdentityNameWithPreexistingErrorForRootName) {
723 CancelWatch(watcher_state_1);
727 SetErrorForCertForRootNameWithSameNameForIdentityErrored) {
745 CancelWatch(watcher_state_1);
749 SetErrorForIdentityNameWithoutErrorForRootName) {
760 CancelWatch(watcher_state_1);
772 CancelWatch(watcher_state_2);
776 SetErrorForRootNameWithPreexistingErrorForIdentityName) {
786 CancelWatch(watcher_state_1);
798 CancelWatch(watcher_state_2);
802 CancelTheLastWatcherOnAnErroredCertInfo) {
814 CancelWatch(watcher_state_1);
819 CancelWatch(watcher_state_2);
823 WatchErroredCertInfoWithValidCredentialData) {
836 watcher_state_1->GetCredentialQueue(),
843 CancelWatch(watcher_state_1);
847 SetErrorForCertThenSuccessfulCredentialUpdates) {
861 watcher_state_1->GetCredentialQueue(),
866 CancelWatch(watcher_state_1);
873 WatcherState* watcher_state_2 = MakeWatcher(
kRootCert1Name, absl::nullopt);
875 WatcherState* watcher_state_3 =
884 CancelWatch(watcher_state_1);
885 CancelWatch(watcher_state_2);
886 CancelWatch(watcher_state_3);
891 WatcherState* watcher_state_1 = MakeWatcher(
kCertName1, absl::nullopt);
893 WatcherState* watcher_state_2 = MakeWatcher(absl::nullopt,
kCertName2);
896 CancelWatch(watcher_state_1);
897 CancelWatch(watcher_state_2);
902 CancelWatch(watcher_state_3);
907 CancelWatch(watcher_state_4);
918 auto verify_function = [
this](
std::string cert_name) {
919 WatcherState* watcher_state_1 = MakeWatcher(cert_name, cert_name);
924 CancelWatch(watcher_state_1);
929 std::vector<std::thread>
threads;
931 for (
int i = 0;
i < 1000; ++
i) {
943 int main(
int argc,
char** argv) {