Skip to content

Commit f835ab1

Browse files
committed
Add cache-test
1 parent de63788 commit f835ab1

16 files changed

+3233
-1
lines changed

.github/workflows/main.yml

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515
run: make
1616
- name: check
1717
run: make check
18+
- name: tests
19+
run: make tests
1820
- name: diverse configurations
1921
run: |
2022
make distclean ENABLE_COMPUTED_GOTO=0

Makefile

+2-1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ $(BIN): $(OBJS)
109109

110110
# RISC-V Architecture Tests
111111
include mk/riscv-arch-test.mk
112+
include mk/tests.mk
112113

113114
CHECK_ELF_FILES := \
114115
hello \
@@ -143,7 +144,7 @@ endif
143144
endif
144145

145146
clean:
146-
$(RM) $(BIN) $(OBJS) $(deps)
147+
$(RM) $(BIN) $(OBJS) $(deps) $(CACHE_OUT)
147148
distclean: clean
148149
-$(RM) $(DOOM_DATA) $(QUAKE_DATA)
149150
$(RM) -r $(OUT)/id1

mk/tests.mk

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
CACHE_TEST_DIR := tests/cache
2+
CACHE_BUILD_DIR := build/cache
3+
TARGET := test_cache
4+
5+
CACHE_OBJS := cache.o \
6+
test_cache.o
7+
8+
CACHE_OBJS := $(addprefix $(CACHE_BUILD_DIR)/, $(CACHE_OBJS))
9+
OBJS += $(CACHE_OBJS)
10+
deps += $(CACHE_OBJS:%.o=%.o.d)
11+
12+
CACHE_CHECK_ELF_FILES := \
13+
cache_new \
14+
cache_put \
15+
cache_get \
16+
cache_lru_replace \
17+
cache_lfu_replace \
18+
cache_lfu_ghost_replace \
19+
20+
CACHE_OUT = $(addprefix $(CACHE_BUILD_DIR)/, $(CACHE_CHECK_ELF_FILES:%=%.out))
21+
22+
tests : $(CACHE_OUT)
23+
$(Q)$(foreach e,$(CACHE_CHECK_ELF_FILES),\
24+
$(PRINTF) "Running $(e) ... "; \
25+
if cmp $(CACHE_TEST_DIR)/$(e).expect $(CACHE_BUILD_DIR)/$(e).out; then \
26+
$(call notice, [OK]); \
27+
else \
28+
$(PRINTF) "Failed.\n"; \
29+
exit 1; \
30+
fi; \
31+
)
32+
33+
$(CACHE_OUT): $(TARGET)
34+
$(Q)$(foreach e,$(CACHE_CHECK_ELF_FILES),\
35+
$(CACHE_BUILD_DIR)/$(TARGET) $(CACHE_TEST_DIR)/$(e).in > $(CACHE_BUILD_DIR)/$(e).out; \
36+
)
37+
38+
$(TARGET): $(CACHE_OBJS)
39+
$(VECHO) " CC\t$@\n"
40+
$(Q)$(CC) $^ -o $(CACHE_BUILD_DIR)/$(TARGET)
41+
42+
$(CACHE_BUILD_DIR)/cache.o: src/cache.c
43+
$(VECHO) " CC\t$@\n"
44+
$(Q)mkdir -p $(dir $@)
45+
$(Q)$(CC) -o $@ $(CFLAGS) -I./src -c -MMD -MF $@.d $<
46+
47+
$(CACHE_BUILD_DIR)/test_cache.o: $(CACHE_TEST_DIR)/test_cache.c
48+
$(Q)$(CC) -o $@ $(CFLAGS) -I./src -c -MMD -MF $@.d $<
49+

tests/cache/cache_get.expect

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
NEW CACHE
2+
NULL
3+
NULL
4+
3
5+
FREE CACHE

tests/cache/cache_get.in

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
NEW
2+
GET 1
3+
GET 2
4+
PUT 3 3
5+
GET 3
6+
FREE
+259
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
NEW CACHE
2+
1
3+
2
4+
3
5+
4
6+
5
7+
6
8+
7
9+
8
10+
9
11+
10
12+
11
13+
12
14+
13
15+
14
16+
15
17+
16
18+
17
19+
18
20+
19
21+
20
22+
21
23+
22
24+
23
25+
24
26+
25
27+
26
28+
27
29+
28
30+
29
31+
30
32+
31
33+
32
34+
33
35+
34
36+
35
37+
36
38+
37
39+
38
40+
39
41+
40
42+
41
43+
42
44+
43
45+
44
46+
45
47+
46
48+
47
49+
48
50+
49
51+
50
52+
51
53+
52
54+
53
55+
54
56+
55
57+
56
58+
57
59+
58
60+
59
61+
60
62+
61
63+
62
64+
63
65+
64
66+
65
67+
66
68+
67
69+
68
70+
69
71+
70
72+
71
73+
72
74+
73
75+
74
76+
75
77+
76
78+
77
79+
78
80+
79
81+
80
82+
81
83+
82
84+
83
85+
84
86+
85
87+
86
88+
87
89+
88
90+
89
91+
90
92+
91
93+
92
94+
93
95+
94
96+
95
97+
96
98+
97
99+
98
100+
99
101+
100
102+
101
103+
102
104+
103
105+
104
106+
105
107+
106
108+
107
109+
108
110+
109
111+
110
112+
111
113+
112
114+
113
115+
114
116+
115
117+
116
118+
117
119+
118
120+
119
121+
120
122+
121
123+
122
124+
123
125+
124
126+
125
127+
126
128+
127
129+
128
130+
129
131+
130
132+
131
133+
132
134+
133
135+
134
136+
135
137+
136
138+
137
139+
138
140+
139
141+
140
142+
141
143+
142
144+
143
145+
144
146+
145
147+
146
148+
147
149+
148
150+
149
151+
150
152+
151
153+
152
154+
153
155+
154
156+
155
157+
156
158+
157
159+
158
160+
159
161+
160
162+
161
163+
162
164+
163
165+
164
166+
165
167+
166
168+
167
169+
168
170+
169
171+
170
172+
171
173+
172
174+
173
175+
174
176+
175
177+
176
178+
177
179+
178
180+
179
181+
180
182+
181
183+
182
184+
183
185+
184
186+
185
187+
186
188+
187
189+
188
190+
189
191+
190
192+
191
193+
192
194+
193
195+
194
196+
195
197+
196
198+
197
199+
198
200+
199
201+
200
202+
201
203+
202
204+
203
205+
204
206+
205
207+
206
208+
207
209+
208
210+
209
211+
210
212+
211
213+
212
214+
213
215+
214
216+
215
217+
216
218+
217
219+
218
220+
219
221+
220
222+
221
223+
222
224+
223
225+
224
226+
225
227+
226
228+
227
229+
228
230+
229
231+
230
232+
231
233+
232
234+
233
235+
234
236+
235
237+
236
238+
237
239+
238
240+
239
241+
240
242+
241
243+
242
244+
243
245+
244
246+
245
247+
246
248+
247
249+
248
250+
249
251+
250
252+
251
253+
252
254+
253
255+
254
256+
255
257+
256
258+
REPLACE 1
259+
FREE CACHE

0 commit comments

Comments
 (0)