diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
index 342f34e..3fd5508 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
@@ -200,6 +200,19 @@
   }
 
   @Test
+  public void testConditionalExpressions() throws Exception {
+    assertEquals(1, eval("1 if True else 2"));
+    assertEquals(2, eval("1 if False else 2"));
+    assertEquals(3, eval("1 + 2 if 3 + 4 else 5 + 6"));
+
+    syntaxEvents.setFailFast(false);
+    parseExpr("1 if 2");
+    syntaxEvents.assertContainsEvent(
+        "missing else clause in conditional expression or semicolon before if");
+    syntaxEvents.collector().clear();
+  }
+
+  @Test
   public void testCompareStringInt() throws Exception {
     checkEvalError("'a' >= 1", "Cannot compare string with int");
   }
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 3e0b0f3..b0735ae 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -877,4 +877,28 @@
   @Override
   @Test
   public void testKeywordArgs() {}
+
+  @Test
+  public void testConditionalExpressionAtToplevel() throws Exception {
+    exec(parseFileForSkylark("x = 1 if 2 else 3"), env);
+    assertEquals(1, env.lookup("x"));
+  }
+
+  @Test
+  public void testConditionalExpressionInFunction() throws Exception {
+    exec(parseFileForSkylark(
+        "def foo(a, b, c):\n"
+        + "  return a+b if c else a-b\n"
+        + "x = foo(23, 5, 0)"), env);
+    assertEquals(18, env.lookup("x"));
+  }
+
+  @Test
+  public void testBadConditionalExpressionInFunction() throws Exception {
+    syntaxEvents.setFailFast(false);
+    parseFileForSkylark("def foo(a): return [] if a else 0\n");
+    syntaxEvents.assertContainsEvent(
+        "bad else case: int is incompatible with list at /some/file.txt:1:33");
+    syntaxEvents.collector().clear();
+  }
 }
