Skip to content

Commit 863d76b

Browse files
authored
add stable order for smoke tests + restoring client codegen (#3265)
1 parent 68e5347 commit 863d76b

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
import software.amazon.smithy.codegen.core.Symbol;
1212

1313
import java.util.Collections;
14+
import java.util.Comparator;
1415
import java.util.HashSet;
1516
import java.util.Set;
1617
import java.util.Map;
18+
import java.util.TreeSet;
1719

1820
public final class CppImportContainer implements ImportContainer {
1921

@@ -27,8 +29,8 @@ public CppImportContainer(String namespace) {
2729
String clientNamespace = SmokeTestsParser.removeSpaces(namespace);
2830
String folderNamespace = SmokeTestsParser.toKebabCase(namespace);
2931
this.c2jNamespace = SmithyC2JNamespaceMap.getInstance().getC2JServiceName(folderNamespace);
30-
this.coreHeaders = new HashSet<>();
31-
this.dynamicHeaders = new HashSet<>();
32+
this.coreHeaders = new TreeSet<>(Comparator.naturalOrder()); //This maintains lexicographical order
33+
this.dynamicHeaders = new TreeSet<>(Comparator.naturalOrder());
3234
Collections.addAll(coreHeaders,
3335
"aws/core/client/AsyncCallerContext.h",
3436
"aws/core/client/AsyncCallerContext.h",

tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/SmokeTestsParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.ArrayList;
2626
import java.util.Arrays;
2727
import java.util.Set;
28+
import java.util.Comparator;
2829

2930
import software.amazon.smithy.build.PluginContext;
3031
import software.amazon.smithy.aws.smoketests.model.AwsSmokeTestModel;
@@ -280,6 +281,7 @@ public Map<ServiceShape, List<SmokeTestData> > extractServiceSmokeTests()
280281
filter(operationShape -> operationShape.getInput().isPresent()).
281282
filter(operationShape -> operationShape.getTrait(SmokeTestsTrait.class).isPresent() ).
282283
filter(operationShape -> operationToServiceMap.containsKey(operationShape.getId()) ).
284+
sorted(Comparator.comparing(OperationShape::getId)).
283285
forEach(operationShape -> {
284286
SmokeTestsTrait smokeTestsTrait = operationShape.getTrait(SmokeTestsTrait.class).get();
285287
//get serviceShape

tools/scripts/run_code_generation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ def collect_available_models(models_dir: str, endpoint_rules_dir: str, legacy_ma
155155
with open(models_dir + "/" + model_file_date[0], 'r') as json_file:
156156
model = json.load(json_file)
157157
#get service id. It has to exist, else continue
158-
if ("metadata" in model and "serviceId" in model["metadata"]):
158+
if "metadata" in model and any(k in model["metadata"] for k in ["serviceId", "serviceFullName"]):
159159
if key not in legacy_mapped_services:
160-
key = model["metadata"]["serviceId"]
160+
key = model["metadata"].get("serviceId", model["metadata"].get("serviceFullName"))
161161
#convert into smithy case convention
162162
key = key.lower().replace(' ', '-')
163163

0 commit comments

Comments
 (0)