Remove CAs after the test run.
Bug: 253209191
Test: Ran CB tests.
Change-Id: I8ff79d25c729f4537069ebaabde2fdddb1e08a3a
(cherry picked from commit 3d504f2b83415e138d9123cd5a4f10f4ce5932e7)
Merged-In: I8ff79d25c729f4537069ebaabde2fdddb1e08a3a
diff --git a/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/SelectAdsTestServerLatency.java b/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/SelectAdsTestServerLatency.java
index e403698..f342774 100644
--- a/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/SelectAdsTestServerLatency.java
+++ b/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/SelectAdsTestServerLatency.java
@@ -45,6 +45,7 @@
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -80,15 +81,15 @@
public static final String DISABLE_ADSERVICES_BACKOFF_CMD =
"am service-restart-backoff disable com.google.android.adservices.api";
- private final Context mContext = ApplicationProvider.getApplicationContext();
- private final AdSelectionClient mAdSelectionClient =
+ private static final Context CONTEXT = ApplicationProvider.getApplicationContext();
+ private static final AdSelectionClient AD_SELECTION_CLIENT =
new AdSelectionClient.Builder()
- .setContext(mContext)
+ .setContext(CONTEXT)
.setExecutor(CALLBACK_EXECUTOR)
.build();
- private final AdvertisingCustomAudienceClient mCustomAudienceClient =
+ private static final AdvertisingCustomAudienceClient CUSTOM_AUDIENCE_CLIENT =
new AdvertisingCustomAudienceClient.Builder()
- .setContext(mContext)
+ .setContext(CONTEXT)
.setExecutor(CALLBACK_EXECUTOR)
.build();
private final Ticker mTicker =
@@ -97,11 +98,12 @@
return android.os.SystemClock.elapsedRealtimeNanos();
}
};
- private List<CustomAudience> mCustomAudiences = new ArrayList<>();
+ private static List<CustomAudience> sCustomAudiences;
@BeforeClass
public static void setupBeforeClass() {
StaticAdTechServerUtils.warmupServers();
+ sCustomAudiences = new ArrayList<>();
// Disable backoff since we will be killing the process between tests
ShellUtils.runShellCommand(DISABLE_ADSERVICES_BACKOFF_CMD);
InstrumentationRegistry.getInstrumentation()
@@ -124,29 +126,49 @@
"device_config put adservices adservice_system_service_enabled true");
}
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ for (CustomAudience ca : sCustomAudiences) {
+ Thread.sleep(DELAY_TO_AVOID_THROTTLE);
+ CUSTOM_AUDIENCE_CLIENT
+ .leaveCustomAudience(ca.getBuyer(), ca.getName())
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ }
+ }
+
@Before
public void setup() throws Exception {
- mCustomAudiences.clear();
ShellUtils.runShellCommand(KILL_ADSERVICES_CMD);
Thread.sleep(SLEEP_MS_AFTER_KILL);
}
@After
public void tearDown() throws Exception {
- leaveCustomAudiences(mCustomAudiences);
+ List<CustomAudience> removedCAs = new ArrayList<>();
+ try {
+ for (CustomAudience ca : sCustomAudiences) {
+ Thread.sleep(DELAY_TO_AVOID_THROTTLE);
+ CUSTOM_AUDIENCE_CLIENT
+ .leaveCustomAudience(ca.getBuyer(), ca.getName())
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ removedCAs.add(ca);
+ }
+ } finally {
+ sCustomAudiences.removeAll(removedCAs);
+ }
}
+
@Test
public void selectAds_oneBuyerLargeCAs() throws Exception {
// 1 Seller, 1 Buyer, 71 Custom Audiences
- ImmutableList<CustomAudience> cas =
- readCustomAudiences("CustomAudiencesOneBuyerLargeCAs.json");
- joinCustomAudiences(cas);
+ sCustomAudiences.addAll(readCustomAudiences("CustomAudiencesOneBuyerLargeCAs.json"));
+ joinCustomAudiences(sCustomAudiences);
AdSelectionConfig config = readAdSelectionConfig("AdSelectionConfigOneBuyerLargeCAs.json");
Stopwatch timer = Stopwatch.createStarted(mTicker);
AdSelectionOutcome outcome =
- mAdSelectionClient
+ AD_SELECTION_CLIENT
.selectAds(config)
.get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
timer.stop();
@@ -164,15 +186,14 @@
@Test
public void selectAds_fiveBuyersLargeCAs() throws Exception {
// 1 Seller, 5 Buyer, each buyer has 71 Custom Audiences
- ImmutableList<CustomAudience> cas =
- readCustomAudiences("CustomAudiencesFiveBuyersLargeCAs.json");
- joinCustomAudiences(cas);
+ sCustomAudiences.addAll(readCustomAudiences("CustomAudiencesFiveBuyersLargeCAs.json"));
+ joinCustomAudiences(sCustomAudiences);
AdSelectionConfig config =
readAdSelectionConfig("AdSelectionConfigFiveBuyersLargeCAs.json");
Stopwatch timer = Stopwatch.createStarted(mTicker);
AdSelectionOutcome outcome =
- mAdSelectionClient
+ AD_SELECTION_CLIENT
.selectAds(config)
.get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
timer.stop();
@@ -278,21 +299,12 @@
private void joinCustomAudiences(List<CustomAudience> customAudiences) throws Exception {
for (CustomAudience ca : customAudiences) {
Thread.sleep(DELAY_TO_AVOID_THROTTLE);
- mCustomAudienceClient
+ CUSTOM_AUDIENCE_CLIENT
.joinCustomAudience(ca)
.get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
}
}
- private void leaveCustomAudiences(List<CustomAudience> customAudiences) throws Exception {
- for (CustomAudience ca : customAudiences) {
- Thread.sleep(DELAY_TO_AVOID_THROTTLE);
- mCustomAudienceClient
- .leaveCustomAudience(ca.getBuyer(), ca.getName())
- .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
- }
- }
-
private String generateLogLabel(String testName) {
return "SELECT_ADS_LATENCY_" + getClass().getSimpleName() + "#" + testName;
}