diff --git a/test/956-checker-lambda/build b/test/956-checker-lambda/build
new file mode 100755
index 0000000..d666020
--- /dev/null
+++ b/test/956-checker-lambda/build
@@ -0,0 +1,27 @@
+#!/bin/bash
+#
+# Copyright 2015 The Android Open Source Project
+#
+# 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.
+
+# Make us exit on a failure.
+set -e
+
+# Hard-wired use of experimental jack.
+# TODO: fix this temporary work-around for lambdas, see b/19467889
+export USE_JACK=true
+export JACK_VERSION="-1.1.PRE_ALPHA"
+export JACK_SERVER=false
+export JACK_REPOSITORY="${ANDROID_BUILD_TOP}/prebuilts/sdk/tools/jacks"
+
+./default-build "$@" --experimental lambdas
diff --git a/test/956-checker-lambda/expected.txt b/test/956-checker-lambda/expected.txt
new file mode 100644
index 0000000..521aed5
--- /dev/null
+++ b/test/956-checker-lambda/expected.txt
@@ -0,0 +1,2 @@
+Lambda 123
+passed
diff --git a/test/956-checker-lambda/info.txt b/test/956-checker-lambda/info.txt
new file mode 100644
index 0000000..6bc7442
--- /dev/null
+++ b/test/956-checker-lambda/info.txt
@@ -0,0 +1 @@
+Test on lambda expressions.
diff --git a/test/956-checker-lambda/run b/test/956-checker-lambda/run
new file mode 100755
index 0000000..2fb2f89
--- /dev/null
+++ b/test/956-checker-lambda/run
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# 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.
+
+# Ensure that the lambda experimental opcodes are turned on for dalvikvm and dex2oat
+${RUN} "$@" --experimental lambdas
diff --git a/test/956-checker-lambda/src/Main.java b/test/956-checker-lambda/src/Main.java
new file mode 100644
index 0000000..b5f4a94
--- /dev/null
+++ b/test/956-checker-lambda/src/Main.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * 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.
+ */
+
+//
+// Test on lambda expressions.
+//
+public class Main {
+
+  @NeedsLambda
+  interface L1 {
+    public void run(int a);
+  }
+
+  int d;
+
+  public Main() {
+    d = 4;
+  }
+
+  private void doit(int a) {
+    int b = 2;
+    // Captures parameter, local, and field. Takes its own parameter.
+    // TODO: add field d as well, b/25631011 prevents this
+    L1 lambda1 = (int c) -> { System.out.println("Lambda " + a + b + c); };
+    lambda1.run(3);
+  }
+
+  public static void main(String[] args) {
+    new Main().doit(1);
+    System.out.println("passed");
+  }
+}
