]>
Commit | Line | Data |
---|---|---|
dddb1fc7 JG |
1 | // |
2 | // Copyright 2011 The Android Open Source Project | |
3 | // | |
4 | #include <utils/String8.h> | |
5 | #include <iostream> | |
6 | #include <errno.h> | |
7 | ||
8 | #include "CrunchCache.h" | |
9 | #include "FileFinder.h" | |
10 | #include "MockFileFinder.h" | |
11 | #include "CacheUpdater.h" | |
12 | #include "MockCacheUpdater.h" | |
13 | ||
14 | using namespace android; | |
15 | using std::cout; | |
16 | using std::endl; | |
17 | ||
18 | void expectEqual(int got, int expected, const char* desc) { | |
19 | cout << "Checking " << desc << ": "; | |
20 | cout << "Got " << got << ", expected " << expected << "..."; | |
21 | cout << ( (got == expected) ? "PASSED" : "FAILED") << endl; | |
22 | errno += ((got == expected) ? 0 : 1); | |
23 | } | |
24 | ||
25 | int main() { | |
26 | ||
27 | errno = 0; | |
28 | ||
29 | String8 source("res"); | |
30 | String8 dest("res2"); | |
31 | ||
32 | // Create data for MockFileFinder to feed to the cache | |
33 | KeyedVector<String8, time_t> sourceData; | |
34 | // This shouldn't be updated | |
35 | sourceData.add(String8("res/drawable/hello.png"),3); | |
36 | // This should be updated | |
37 | sourceData.add(String8("res/drawable/world.png"),5); | |
38 | // This should cause make directory to be called | |
39 | sourceData.add(String8("res/drawable-cool/hello.png"),3); | |
40 | ||
41 | KeyedVector<String8, time_t> destData; | |
42 | destData.add(String8("res2/drawable/hello.png"),3); | |
43 | destData.add(String8("res2/drawable/world.png"),3); | |
44 | // this should call delete | |
45 | destData.add(String8("res2/drawable/dead.png"),3); | |
46 | ||
47 | // Package up data and create mock file finder | |
48 | KeyedVector<String8, KeyedVector<String8,time_t> > data; | |
49 | data.add(source,sourceData); | |
50 | data.add(dest,destData); | |
51 | FileFinder* ff = new MockFileFinder(data); | |
52 | CrunchCache cc(source,dest,ff); | |
53 | ||
54 | MockCacheUpdater* mcu = new MockCacheUpdater(); | |
55 | CacheUpdater* cu(mcu); | |
56 | ||
57 | cout << "Running Crunch..."; | |
58 | int result = cc.crunch(cu); | |
59 | cout << ((result > 0) ? "PASSED" : "FAILED") << endl; | |
60 | errno += ((result > 0) ? 0 : 1); | |
61 | ||
62 | const int EXPECTED_RESULT = 2; | |
63 | expectEqual(result, EXPECTED_RESULT, "number of files touched"); | |
64 | ||
65 | cout << "Checking calls to deleteFile and processImage:" << endl; | |
66 | const int EXPECTED_DELETES = 1; | |
67 | const int EXPECTED_PROCESSED = 2; | |
68 | // Deletes | |
69 | expectEqual(mcu->deleteCount, EXPECTED_DELETES, "deleteFile"); | |
70 | // processImage | |
71 | expectEqual(mcu->processCount, EXPECTED_PROCESSED, "processImage"); | |
72 | ||
73 | const int EXPECTED_OVERWRITES = 3; | |
74 | result = cc.crunch(cu, true); | |
75 | expectEqual(result, EXPECTED_OVERWRITES, "number of files touched with overwrite"); | |
76 | \ | |
77 | ||
78 | if (errno == 0) | |
79 | cout << "ALL TESTS PASSED!" << endl; | |
80 | else | |
81 | cout << errno << " TESTS FAILED" << endl; | |
82 | ||
83 | delete ff; | |
84 | delete cu; | |
85 | ||
86 | // TESTS BELOW WILL GO AWAY SOON | |
87 | ||
88 | String8 source2("ApiDemos/res"); | |
89 | String8 dest2("ApiDemos/res2"); | |
90 | ||
91 | FileFinder* sff = new SystemFileFinder(); | |
92 | CacheUpdater* scu = new SystemCacheUpdater(); | |
93 | ||
94 | CrunchCache scc(source2,dest2,sff); | |
95 | ||
96 | scc.crunch(scu); | |
97 | } |