Permalink
Browse files

Add test to upload code to an Arduino

  • Loading branch information...
1 parent c75384c commit 367f9a7fd97c23b7fc515fd98f110372a1ba1b23 @msantos committed Mar 30, 2012
Showing with 57 additions and 0 deletions.
  1. +3 −0 Makefile
  2. +54 −0 test/stk500_tests.erl
View
@@ -16,3 +16,6 @@ clean: $(REBAR)
deps: $(REBAR)
@$(REBAR) get-deps
+
+test: $(REBAR) compile
+ @$(REBAR) eunit
View
@@ -0,0 +1,54 @@
+%% Copyright (c) 2012, Michael Santos <michael.santos@gmail.com>
+%% All rights reserved.
+%%
+%% Redistribution and use in source and binary forms, with or without
+%% modification, are permitted provided that the following conditions
+%% are met:
+%%
+%% Redistributions of source code must retain the above copyright
+%% notice, this list of conditions and the following disclaimer.
+%%
+%% Redistributions in binary form must reproduce the above copyright
+%% notice, this list of conditions and the following disclaimer in the
+%% documentation and/or other materials provided with the distribution.
+%%
+%% Neither the name of the author nor the names of its contributors
+%% may be used to endorse or promote products derived from this software
+%% without specific prior written permission.
+%%
+%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+%% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+%% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+%% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+%% COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+%% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+%% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+%% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+%% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+%% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+%% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+%% POSSIBILITY OF SUCH DAMAGE.
+-module(stk500_tests).
+
+-compile(export_all).
+
+-include_lib("eunit/include/eunit.hrl").
+
+-define(SERIAL_PORT, "/dev/ttyUSB0").
+-define(HEX_FILE, "doc/counter.cpp.hex").
+
+%% Upload code to an Arduino.
+stk500_program_load_test() ->
+ {ok,FD} = stk500:open(?SERIAL_PORT),
+ error_logger:info_report([{hex_file, codepath(?HEX_FILE)}]),
+ Hex = stk500:hex_file(codepath(?HEX_FILE)),
+ Bytes = stk500:chunk(Hex, 128),
+ ok = stk500:load(FD, Bytes, [verbose]),
+ ok = serctl:close(FD).
+
+codepath(File) ->
+ filename:join([
+ filename:dirname(code:which(?MODULE)),
+ "..",
+ File
+ ]).

0 comments on commit 367f9a7

Please sign in to comment.