<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>t/etap_t_013.erl</filename>
    </added>
    <added>
      <filename>t/etap_t_013.t</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,6 @@
 LIBDIR=`erl -eval 'io:format(&quot;~s~n&quot;, [code:lib_dir()])' -s init stop -noshell`
 .PHONY: doc
-VERSION=0.3.3
+VERSION=0.3.4
 
 all:
 	mkdir -p ebin</diff>
      <filename>Makefile</filename>
    </modified>
    <modified>
      <diff>@@ -48,9 +48,9 @@ The included tests cover the basic functionality of the etap modules. They can a
 
 To install etap you need to create the `etap/ebin/` directory in your current Erlang library and copy all of the .beam files created by the `make` file.
 
-    $ sudo mkdir -p /usr/lib/erlang/lib/etap-0.3.3/ebin
+    $ sudo mkdir -p /usr/lib/erlang/lib/etap-0.3.4/ebin
     $ make clean &amp;&amp; make
-    $ sudo cp ebin/*.beam /usr/lib/erlang/lib/etap-0.3.3/ebin/
+    $ sudo cp ebin/*.beam /usr/lib/erlang/lib/etap-0.3.4/ebin/
 
 The `make dist-src` target can be used to create source distributions for further packaging and deployment.
 
@@ -91,8 +91,8 @@ There are a number of proposals listed on the TAP wiki that are not supported by
  * LIMITED SUPPORTED: TAP diagnostic syntax
  * LIMITED SUPPORTED: TAP meta information
  * LIMITED SUPPORTED: TAP logging syntax
- * SUPPORTED: SKIP
  * NOT SUPPORTED: TODO
+ * SUPPORTED: SKIP
  * SUPPORTED: TAP datetime
  * SUPPORTED: c0 code coverage
  * SUPPORTED: html code coverage reports</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@
 %% 
 %% @author Nick Gerakines &lt;nick@gerakines.net&gt; [http://socklabs.com/]
 %% @author Jeremy Wall &lt;jeremy@marzhillstudios.com&gt;
-%% @version 0.3.3
+%% @version 0.3.4
 %% @copyright 2007-2008 Jeremy Wall, 2008-2009 Nick Gerakines
 %% @reference http://testanything.org/wiki/index.php/Main_Page
 %% @reference http://en.wikipedia.org/wiki/Test_Anything_Protocol
@@ -52,12 +52,17 @@
     datetime/1, skip/3
 ]).
 -record(test_state, {planned = 0, count = 0, pass = 0, fail = 0, skip = 0, skip_reason = &quot;&quot;}).
--vsn(&quot;0.3.3&quot;).
+-vsn(&quot;0.3.4&quot;).
 
 %% @spec plan(N) -&gt; Result
-%%       N = skip | {skip, string()} | integer()
+%%       N = unknown | skip | {skip, string()} | integer()
 %%       Result = ok
 %% @doc Create a test plan and boot strap the test server.
+plan(unknown) -&gt;
+    ensure_coverage_starts(),
+    ensure_test_server(),
+    etap_server ! {self(), plan, unknown},
+    ok;
 plan(skip) -&gt;
     io:format(&quot;1..0 # skip~n&quot;);
 plan({skip, Reason}) -&gt;
@@ -70,8 +75,17 @@ plan(N) when is_integer(N), N &gt; 0 -&gt;
 
 %% @spec end_tests() -&gt; ok
 %% @doc End the current test plan and output test results.
+%% @todo This should probably be done in the test_server process.
 end_tests() -&gt;
     ensure_coverage_ends(),
+    etap_server ! {self(), state},
+    State = receive X -&gt; X end,
+    if
+        State#test_state.planned == -1 -&gt;
+            io:format(&quot;1..~p~n&quot;, [State#test_state.count]);
+        true -&gt;
+            ok
+    end,
     case whereis(etap_server) of
         undefined -&gt; ok;
         _ -&gt; etap_server ! done, ok
@@ -278,6 +292,17 @@ start_etap_server() -&gt;
 %% message that clears the current test state.
 test_server(State) -&gt;
     NewState = receive
+        {_From, plan, unknown} -&gt;
+            io:format(&quot;# Current time local ~s~n&quot;, [datetime(erlang:localtime())]),
+            io:format(&quot;# Using etap version ~p~n&quot;, [ proplists:get_value(vsn, proplists:get_value(attributes, etap:module_info())) ]),
+            State#test_state{
+                planned = -1,
+                count = 0,
+                pass = 0,
+                fail = 0,
+                skip = 0,
+                skip_reason = &quot;&quot;
+            };
         {_From, plan, N} -&gt;
             io:format(&quot;# Current time local ~s~n&quot;, [datetime(erlang:localtime())]),
             io:format(&quot;# Using etap version ~p~n&quot;, [ proplists:get_value(vsn, proplists:get_value(attributes, etap:module_info())) ]),</diff>
      <filename>src/etap.erl</filename>
    </modified>
    <modified>
      <diff>@@ -291,7 +291,7 @@ header(Module, Good, Bad) -&gt;
           &lt;/head&gt;
           &lt;body&gt;
             &lt;h3&gt;C0 code coverage information&lt;/h3&gt;
-            &lt;p&gt;Generated on ~s with &lt;a href='http://github.com/ngerakines/etap'&gt;etap 0.3.3&lt;/a&gt;.
+            &lt;p&gt;Generated on ~s with &lt;a href='http://github.com/ngerakines/etap'&gt;etap 0.3.4&lt;/a&gt;.
             &lt;/p&gt;            
         &lt;table class='report'&gt;
           &lt;thead&gt;
@@ -335,7 +335,7 @@ header(Module, Good, Bad) -&gt;
 
 %% @private
 footer() -&gt;
-    &quot;&lt;/pre&gt;&lt;hr /&gt;&lt;p&gt;Generated using &lt;a href='http://github.com/ngerakines/etap'&gt;etap 0.3.3&lt;/a&gt;.&lt;/p&gt;
+    &quot;&lt;/pre&gt;&lt;hr /&gt;&lt;p&gt;Generated using &lt;a href='http://github.com/ngerakines/etap'&gt;etap 0.3.4&lt;/a&gt;.&lt;/p&gt;
           &lt;/body&gt;
         &lt;/html&gt;
     &quot;.</diff>
      <filename>src/etap_report.erl</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 @title A TAP testing client.
 @author Nick Gerakines &lt;nick@gerakines.net&gt;
 @author Jeremy Wall &lt;jeremy@marzhillstudios.com&gt;
-@version 0.3.3
+@version 0.3.4
 @doc A TAP testing client.
 
 &lt;p&gt;etap is a collection of Erlang modules that provide a TAP testing client library. These modules allow developers to create extensive and comprehensive tests covering many aspects of application and module development. This includes simple assertions, exceptions, the application behavior and event web requests. This library was originally written by Jeremy wall.&lt;/p&gt;
@@ -46,9 +46,9 @@ $ make prove
 
 &lt;p&gt;To install etap you need to create the &lt;code&gt;etap/ebin/&lt;/code&gt; directory in your current Erlang library and copy all of the .beam files created by the &lt;code&gt;make&lt;/code&gt; file.&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;$ sudo mkdir -p /usr/lib/erlang/lib/etap-0.3.3/ebin
+&lt;pre&gt;&lt;code&gt;$ sudo mkdir -p /usr/lib/erlang/lib/etap-0.3.4/ebin
 $ make clean &amp;amp;&amp;amp; make
-$ sudo cp ebin/*.beam /usr/lib/erlang/lib/etap-0.3.3/ebin/
+$ sudo cp ebin/*.beam /usr/lib/erlang/lib/etap-0.3.4/ebin/
 &lt;/code&gt;&lt;/pre&gt;
 
 &lt;p&gt;The &lt;code&gt;make dist-src&lt;/code&gt; target can be used to create source distributions for further packaging and deployment.&lt;/p&gt;</diff>
      <filename>src/overview.edoc</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>36ae9bb84446842b0aee70d9b28ee9c028dc9a2a</id>
    </parent>
  </parents>
  <author>
    <name>Nick Gerakines</name>
    <email>nick@gerakines.net</email>
  </author>
  <url>http://github.com/ngerakines/etap/commit/f5d36d0c34696b2def2f658cb9cc8733a27ba2e5</url>
  <id>f5d36d0c34696b2def2f658cb9cc8733a27ba2e5</id>
  <committed-date>2009-04-24T18:33:42-07:00</committed-date>
  <authored-date>2009-04-24T18:33:42-07:00</authored-date>
  <message>Adding support for unknown test plans. Bumped version to 0.3.4</message>
  <tree>db73db06833e19a2759b2bc44014f72ba1370da5</tree>
  <committer>
    <name>Nick Gerakines</name>
    <email>nick@gerakines.net</email>
  </committer>
</commit>
