diff --git a/test/src/test/java/hudson/matrix/MatrixProjectTest.java b/test/src/test/java/hudson/matrix/MatrixProjectTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f4c0ac61eec6e1c5812d0fbeb0b707e00c0bb45
--- /dev/null
+++ b/test/src/test/java/hudson/matrix/MatrixProjectTest.java
@@ -0,0 +1,39 @@
+package hudson.matrix;
+
+import hudson.model.Result;
+import hudson.tasks.Ant;
+import org.jvnet.hudson.test.HudsonTestCase;
+import org.jvnet.hudson.test.SingleFileSCM;
+
+import java.util.List;
+
+/**
+ * @author Kohsuke Kawaguchi
+ */
+public class MatrixProjectTest extends HudsonTestCase {
+ /**
+ * Tests that axes are available as build variables in the Ant builds.
+ */
+ public void testBuildAxis() throws Exception {
+ MatrixProject p = (MatrixProject) hudson.createProject(MatrixProject.DESCRIPTOR, "test");
+
+ // set up 2x2 matrix
+ AxisList axes = new AxisList();
+ axes.add(new Axis("db","mysql","oracle"));
+ axes.add(new Axis("direction","north","south"));
+ p.setAxes(axes);
+ p.getBuildersList().add(new Ant("-Dprop=${db} test",null,null,null,null));
+
+ // we need a dummy build script that echos back our property
+ p.setScm(new SingleFileSCM("build.xml","assertion ${prop}=${db}"));
+
+ MatrixBuild build = p.scheduleBuild2(0).get();
+ List runs = build.getRuns();
+ assertEquals(4,runs.size());
+ for (MatrixRun run : runs) {
+ assertBuildStatus(Result.SUCCESS, run);
+ String expectedDb = run.getParent().getCombination().get("db");
+ assertLogContains("assertion "+expectedDb+"="+expectedDb, run);
+ }
+ }
+}