diff --git a/metropolis/cli/metroctl/table_test.go b/metropolis/cli/metroctl/table_test.go
new file mode 100644
index 0000000..0ea1448
--- /dev/null
+++ b/metropolis/cli/metroctl/table_test.go
@@ -0,0 +1,45 @@
+package main
+
+import (
+	"bytes"
+	"strings"
+	"testing"
+)
+
+// TestTableLayout performs a smoke test of the table layout functionality.
+func TestTableLayout(t *testing.T) {
+	tab := table{}
+
+	e := entry{}
+	e.add("id", "short")
+	e.add("labels", "")
+	tab.add(e)
+
+	e = entry{}
+	e.add("whoops", "only in second")
+	e.add("labels", "bar")
+	e.add("id", "this one is a very long one")
+	tab.add(e)
+
+	e = entry{}
+	e.add("id", "normal length")
+	e.add("labels", "foo")
+	tab.add(e)
+
+	buf := bytes.NewBuffer(nil)
+	tab.print(buf, nil)
+
+	golden := `
+ID                            LABELS   WHOOPS           
+short                                                   
+this one is a very long one   bar      only in second   
+normal length                 foo                       
+`
+	golden = strings.TrimSpace(golden)
+	got := strings.TrimSpace(buf.String())
+	if got != golden {
+		t.Logf("wanted: \n" + golden)
+		t.Logf("got: \n" + got)
+		t.Errorf("mismatch")
+	}
+}
