Skip to content

Commit 29384e2

Browse files
committed
Adding SD tests, removing clean.bat.
1 parent a6f3f27 commit 29384e2

File tree

3 files changed

+172
-2
lines changed

3 files changed

+172
-2
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Tests writing to and reading from a file, in particular the
2+
// the Stream implementation (e.g. read() and peek()).
3+
4+
#include <SD.h>
5+
#include <ArduinoTestSuite.h>
6+
7+
void setup()
8+
{
9+
int startMemoryUsage = ATS_GetFreeMemory();
10+
boolean b;
11+
File f;
12+
13+
ATS_begin("Arduino", "SD Test");
14+
15+
ATS_PrintTestStatus("SD.begin()", b = SD.begin(4));
16+
if (!b) goto done;
17+
18+
f = SD.open("test.txt", true, false);
19+
ATS_PrintTestStatus("SD.open()", f);
20+
if (!f) goto done;
21+
22+
f.print("abcdefgh");
23+
f.close();
24+
25+
f = SD.open("test.txt");
26+
ATS_PrintTestStatus("SD.open()", f);
27+
if (!f) goto done;
28+
29+
ATS_PrintTestStatus("read()", f.read() == 'a');
30+
ATS_PrintTestStatus("peek()", f.peek() == 'b');
31+
ATS_PrintTestStatus("read()", f.read() == 'b');
32+
ATS_PrintTestStatus("read()", f.read() == 'c');
33+
ATS_PrintTestStatus("peek()", f.peek() == 'd');
34+
ATS_PrintTestStatus("peek()", f.peek() == 'd');
35+
ATS_PrintTestStatus("peek()", f.peek() == 'd');
36+
ATS_PrintTestStatus("peek()", f.peek() == 'd');
37+
ATS_PrintTestStatus("read()", f.read() == 'd');
38+
ATS_PrintTestStatus("available()", f.available() != 0);
39+
ATS_PrintTestStatus("read()", f.read() == 'e');
40+
ATS_PrintTestStatus("available()", f.available() != 0);
41+
ATS_PrintTestStatus("peek()", f.peek() == 'f');
42+
ATS_PrintTestStatus("read()", f.read() == 'f');
43+
ATS_PrintTestStatus("peek()", f.peek() == 'g');
44+
ATS_PrintTestStatus("available()", f.available() != 0);
45+
ATS_PrintTestStatus("peek()", f.peek() == 'g');
46+
ATS_PrintTestStatus("read()", f.read() == 'g');
47+
ATS_PrintTestStatus("available()", f.available() != 0);
48+
ATS_PrintTestStatus("available()", f.available() != 0);
49+
ATS_PrintTestStatus("available()", f.available() != 0);
50+
ATS_PrintTestStatus("peek()", f.peek() == 'h');
51+
ATS_PrintTestStatus("read()", f.read() == 'h');
52+
ATS_PrintTestStatus("available()", f.available() == 0);
53+
ATS_PrintTestStatus("peek()", f.peek() == -1);
54+
ATS_PrintTestStatus("read()", f.read() == -1);
55+
ATS_PrintTestStatus("peek()", f.peek() == -1);
56+
ATS_PrintTestStatus("read()", f.read() == -1);
57+
58+
f.close();
59+
60+
f = SD.open("test2.txt", true, false);
61+
ATS_PrintTestStatus("SD.open()", f);
62+
if (!f) goto done;
63+
64+
f.print("ABC");
65+
f.close();
66+
67+
f = SD.open("test.txt");
68+
ATS_PrintTestStatus("SD.open()", f);
69+
if (!f) goto done;
70+
71+
ATS_PrintTestStatus("peek()", f.peek() == 'a');
72+
73+
f.close();
74+
75+
f = SD.open("test2.txt");
76+
ATS_PrintTestStatus("SD.open()", f);
77+
if (!f) goto done;
78+
79+
ATS_PrintTestStatus("peek()", f.peek() == 'A');
80+
ATS_PrintTestStatus("read()", f.read() == 'A');
81+
82+
f.close();
83+
84+
done:
85+
ATS_ReportMemoryUsage(startMemoryUsage);
86+
ATS_end();
87+
88+
}
89+
90+
void loop() {}
91+
92+
93+
94+
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#include <SD.h>
2+
#include <ArduinoTestSuite.h>
3+
4+
void setup()
5+
{
6+
int startMemoryUsage = ATS_GetFreeMemory();
7+
boolean b;
8+
File f;
9+
10+
ATS_begin("Arduino", "SD Files Test");
11+
12+
ATS_PrintTestStatus("SD.begin()", b = SD.begin(4));
13+
if (!b) goto done;
14+
15+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt"));
16+
ATS_PrintTestStatus("SD.open()", f = SD.open("asdf.txt", true)); f.close();
17+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf.txt"));
18+
ATS_PrintTestStatus("SD.exists()", SD.exists("/asdf.txt"));
19+
ATS_PrintTestStatus("SD.remove()", SD.remove("asdf.txt"));
20+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt"));
21+
22+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf"));
23+
ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("asdf"));
24+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf"));
25+
ATS_PrintTestStatus("SD.exists()", SD.exists("/asdf"));
26+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/"));
27+
ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("asdf"));
28+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf"));
29+
30+
ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("x/y/z"));
31+
ATS_PrintTestStatus("SD.exists()", SD.exists("x"));
32+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/"));
33+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/y"));
34+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/"));
35+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/z"));
36+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/z/"));
37+
ATS_PrintTestStatus("SD.exists()", SD.exists("/x/y/z/"));
38+
ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("x/y/z"));
39+
ATS_PrintTestStatus("SD.exists()", SD.exists("x"));
40+
ATS_PrintTestStatus("SD.exists()", SD.exists("x/y"));
41+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z"));
42+
ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("x/y/"));
43+
ATS_PrintTestStatus("SD.exists()", SD.exists("x"));
44+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y"));
45+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z"));
46+
ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("/x"));
47+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x"));
48+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y"));
49+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z"));
50+
51+
ATS_PrintTestStatus("!SD.open()", !(f = SD.open("asdf/asdf.txt", true))); f.close();
52+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf"));
53+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt"));
54+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf/asdf.txt"));
55+
ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("asdf"));
56+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf"));
57+
ATS_PrintTestStatus("SD.open()", f = SD.open("asdf/asdf.txt", true)); f.close();
58+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/asdf.txt"));
59+
ATS_PrintTestStatus("!SD.rmdir()", !SD.rmdir("asdf"));
60+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf"));
61+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/asdf.txt"));
62+
ATS_PrintTestStatus("SD.remove()", SD.remove("asdf/asdf.txt"));
63+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf/asdf.txt"));
64+
ATS_PrintTestStatus("SD.exists()", SD.exists("asdf"));
65+
ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("asdf"));
66+
ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf"));
67+
68+
done:
69+
ATS_ReportMemoryUsage(startMemoryUsage);
70+
ATS_end();
71+
72+
}
73+
74+
void loop() {}
75+
76+
77+
78+

libraries/SD/utility/examples/clean.bat

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)