|  | // Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  | package com.android.tools.r8; | 
|  |  | 
|  | import com.android.tools.r8.utils.Pair; | 
|  | import java.io.IOException; | 
|  | import java.util.ArrayList; | 
|  | import java.util.List; | 
|  | import java.util.concurrent.ExecutionException; | 
|  |  | 
|  | public class DesugarTestBuilder | 
|  | extends TestBuilderCollection< | 
|  | DesugarTestConfiguration, DesugarTestRunResult, DesugarTestBuilder> { | 
|  |  | 
|  | public static DesugarTestBuilder create( | 
|  | TestState state, | 
|  | List<Pair<DesugarTestConfiguration, TestBuilder<? extends TestRunResult<?>, ?>>> | 
|  | testBuilders) { | 
|  | return new DesugarTestBuilder(state, testBuilders); | 
|  | } | 
|  |  | 
|  | private DesugarTestBuilder( | 
|  | TestState state, | 
|  | List<Pair<DesugarTestConfiguration, TestBuilder<? extends TestRunResult<?>, ?>>> builders) { | 
|  | super(state, builders); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | DesugarTestBuilder self() { | 
|  | return this; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public DesugarTestRunResult run(TestRuntime runtime, String mainClass, String... args) | 
|  | throws CompilationFailedException, ExecutionException, IOException { | 
|  | List<Pair<DesugarTestConfiguration, TestRunResult<?>>> runs = new ArrayList<>(builders.size()); | 
|  | for (Pair<DesugarTestConfiguration, TestBuilder<? extends TestRunResult<?>, ?>> builder : | 
|  | builders) { | 
|  | runs.add(new Pair<>(builder.getFirst(), builder.getSecond().run(runtime, mainClass, args))); | 
|  | } | 
|  | return DesugarTestRunResult.create(runs); | 
|  | } | 
|  | } |