aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-07-05 18:03:47 -0400
committerGravatar John Cater <jcater@google.com>2017-07-06 07:14:09 -0400
commit478f763599828f88724ee8b3e59f38539cbdd73d (patch)
treecb3f07a7e5ac4b8590a5331e494ed4f4f0be85fb /src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java
parent6508e317b76ef2f26cff5d95a4a82c13a1913b78 (diff)
Open source unit tests for the objc rules.
PiperOrigin-RevId: 161010594
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java
new file mode 100644
index 0000000000..50e1608a13
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BinaryRuleType.java
@@ -0,0 +1,44 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.rules.objc;
+
+import com.google.devtools.build.lib.testutil.Scratch;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * This exists for convenience for any rule type requires the exact same attributes as
+ * {@code objc_binary}. If some rule ever changes to require more or fewer attributes, it is OK
+ * to stop using this class.
+ */
+final class BinaryRuleType extends RuleType {
+ BinaryRuleType(String ruleTypeName) {
+ super(ruleTypeName);
+ }
+
+ @Override
+ Iterable<String> requiredAttributes(
+ Scratch scratch, String packageName, Set<String> alreadyAdded) throws IOException {
+ List<String> attributes = new ArrayList<>();
+ if (!alreadyAdded.contains("srcs") && !alreadyAdded.contains("non_arc_srcs")) {
+ scratch.file(packageName + "/a.m");
+ scratch.file(packageName + "/private.h");
+ attributes.add("srcs = ['a.m', 'private.h']");
+ }
+ return attributes;
+ }
+}