Skip to content

Commit 7ed5aa1

Browse files
authored
Merge pull request #172 from ojeda/samples
Samples
2 parents 1509393 + d16972f commit 7ed5aa1

26 files changed

+927
-776
lines changed

.github/workflows/ci.yaml

Lines changed: 70 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,36 @@ jobs:
159159
- run: mv .github/workflows/busybox.config busybox/.config
160160
- run: cd busybox && make ${{ env.MAKE_CROSS_COMPILE }} -j3
161161

162+
# Setup: module parameters test
163+
- run: |
164+
cp samples/rust/rust_module_parameters.rs samples/rust/rust_module_parameters_builtin_default.rs
165+
cp samples/rust/rust_module_parameters.rs samples/rust/rust_module_parameters_builtin_custom.rs
166+
cp samples/rust/rust_module_parameters.rs samples/rust/rust_module_parameters_loadable_default.rs
167+
cp samples/rust/rust_module_parameters.rs samples/rust/rust_module_parameters_loadable_custom.rs
168+
169+
sed -i 's:" my_:" built-in default my_:g' samples/rust/rust_module_parameters_builtin_default.rs
170+
sed -i 's:" my_:" built-in custom my_:g' samples/rust/rust_module_parameters_builtin_custom.rs
171+
sed -i 's:" my_:" loadable default my_:g' samples/rust/rust_module_parameters_loadable_default.rs
172+
sed -i 's:" my_:" loadable custom my_:g' samples/rust/rust_module_parameters_loadable_custom.rs
173+
174+
sed -i 's:rust_module_parameters:rust_module_parameters_builtin_default:g' samples/rust/rust_module_parameters_builtin_default.rs
175+
sed -i 's:rust_module_parameters:rust_module_parameters_builtin_custom:g' samples/rust/rust_module_parameters_builtin_custom.rs
176+
sed -i 's:rust_module_parameters:rust_module_parameters_loadable_default:g' samples/rust/rust_module_parameters_loadable_default.rs
177+
sed -i 's:rust_module_parameters:rust_module_parameters_loadable_custom:g' samples/rust/rust_module_parameters_loadable_custom.rs
178+
179+
echo 'obj-y += rust_module_parameters_builtin_default.o' >> samples/rust/Makefile
180+
echo 'obj-y += rust_module_parameters_builtin_custom.o' >> samples/rust/Makefile
181+
echo 'obj-m += rust_module_parameters_loadable_default.o' >> samples/rust/Makefile
182+
echo 'obj-m += rust_module_parameters_loadable_custom.o' >> samples/rust/Makefile
183+
162184
# Build
163185
- run: mv .github/workflows/kernel-${{ matrix.arch }}-${{ matrix.config }}.config .config
164186

165187
- if: matrix.output == 'build'
166188
run: |
167189
mkdir ${{ env.BUILD_DIR }}
168190
mv .config ${{ env.BUILD_DIR }}.config
169-
sed -i 's:drivers/:${{ env.BUILD_DIR }}drivers/:' .github/workflows/qemu-initramfs.desc
191+
sed -i 's:samples/rust/:${{ env.BUILD_DIR }}samples/rust/:' .github/workflows/qemu-initramfs.desc
170192
171193
- run: make ${{ env.MAKE_ARCH }} ${{ env.MAKE_CROSS_COMPILE }} ${{ env.MAKE_TOOLCHAIN }} ${{ env.MAKE_OUTPUT }} ${{ env.MAKE_SYSROOT }} -j3
172194

@@ -184,55 +206,67 @@ jobs:
184206
-vga none \
185207
-no-reboot \
186208
-append '${{ env.QEMU_APPEND }} \
187-
rust_example.my_i32=123321 \
188-
rust_example.my_str=🦀mod \
189-
rust_example_2.my_i32=234432 \
190-
rust_example_2.my_array=1,2,3' \
209+
rust_module_parameters_builtin_custom.my_bool=n \
210+
rust_module_parameters_builtin_custom.my_i32=345543 \
211+
rust_module_parameters_builtin_custom.my_str=🦀mod \
212+
rust_module_parameters_builtin_custom.my_usize=84 \
213+
rust_module_parameters_builtin_custom.my_array=1,2,3 \
214+
' \
191215
| sed s:$'\r'$:: \
192216
| tee qemu-stdout.log
193217
194218
# Check
195219
- run: |
196-
grep '] Rust Example (init)$' qemu-stdout.log
197-
grep '] \[2] Rust Example (init)$' qemu-stdout.log
198-
grep '] \[3] Rust Example (init)$' qemu-stdout.log
199-
grep '] \[4] Rust Example (init)$' qemu-stdout.log
200-
201-
grep '] my_i32: 123321$' qemu-stdout.log
202-
grep '] \[2] my_i32: 234432$' qemu-stdout.log
203-
grep '] \[3] my_i32: 345543$' qemu-stdout.log
204-
grep '] \[4] my_i32: 456654$' qemu-stdout.log
205-
206-
grep '] my_usize: 42$' qemu-stdout.log
207-
grep '] \[2] my_usize: 42$' qemu-stdout.log
208-
grep '] \[3] my_usize: 42$' qemu-stdout.log
209-
grep '] \[4] my_usize: 84$' qemu-stdout.log
210-
211-
grep '] my_str: 🦀mod$' qemu-stdout.log
212-
grep '] \[2] my_str: default str val$' qemu-stdout.log
213-
grep '] \[3] my_str: 🦀mod$' qemu-stdout.log
214-
grep '] \[4] my_str: default str val$' qemu-stdout.log
215-
216-
grep '] my_array: \[0, 1]$' qemu-stdout.log
217-
grep '] \[2] my_array: \[1, 2, 3]$' qemu-stdout.log
218-
grep '] \[3] my_array: \[0, 1]$' qemu-stdout.log
219-
grep '] \[4] my_array: \[1, 2, 3]$' qemu-stdout.log
220-
221-
grep '] \[3] Rust Example (exit)$' qemu-stdout.log
222-
grep '] \[4] Rust Example (exit)$' qemu-stdout.log
220+
grep '] Rust minimal sample (init)$' qemu-stdout.log
221+
grep '] Rust minimal sample (exit)$' qemu-stdout.log
222+
223+
grep '] Rust module parameters sample (init)$' qemu-stdout.log
224+
grep '] built-in default my_bool: true$' qemu-stdout.log
225+
grep '] built-in default my_i32: 42$' qemu-stdout.log
226+
grep '] built-in default my_str: default str val$' qemu-stdout.log
227+
grep '] built-in default my_usize: 42$' qemu-stdout.log
228+
grep '] built-in default my_array: \[0, 1]$' qemu-stdout.log
229+
grep '] built-in custom my_bool: false$' qemu-stdout.log
230+
grep '] built-in custom my_i32: 345543$' qemu-stdout.log
231+
grep '] built-in custom my_str: 🦀mod$' qemu-stdout.log
232+
grep '] built-in custom my_usize: 84$' qemu-stdout.log
233+
grep '] built-in custom my_array: \[1, 2, 3]$' qemu-stdout.log
234+
grep '] loadable default my_bool: true$' qemu-stdout.log
235+
grep '] loadable default my_i32: 42$' qemu-stdout.log
236+
grep '] loadable default my_str: default str val$' qemu-stdout.log
237+
grep '] loadable default my_usize: 42$' qemu-stdout.log
238+
grep '] loadable default my_array: \[0, 1]$' qemu-stdout.log
239+
grep '] loadable custom my_bool: false$' qemu-stdout.log
240+
grep '] loadable custom my_i32: 345543$' qemu-stdout.log
241+
grep '] loadable custom my_str: 🦀mod$' qemu-stdout.log
242+
grep '] loadable custom my_usize: 84$' qemu-stdout.log
243+
grep '] loadable custom my_array: \[1, 2, 3]$' qemu-stdout.log
244+
grep '] Rust module parameters sample (exit)$' qemu-stdout.log
245+
246+
grep '] Rust synchronisation primitives sample (init)$' qemu-stdout.log
247+
grep '] Rust synchronisation primitives sample (exit)$' qemu-stdout.log
248+
249+
grep '] Rust character device sample (init)$' qemu-stdout.log
250+
grep '] Rust character device sample (exit)$' qemu-stdout.log
251+
252+
grep '] Rust miscellaneous device sample (init)$' qemu-stdout.log
253+
grep '] Rust miscellaneous device sample (exit)$' qemu-stdout.log
254+
255+
grep '] Rust stack probing sample (init)$' qemu-stdout.log
256+
grep '] Rust stack probing sample (exit)$' qemu-stdout.log
223257
224258
# Report
225259
- run: |
226260
ls -l \
227-
${{ env.BUILD_DIR }}drivers/char/rust_example.o \
228-
${{ env.BUILD_DIR }}drivers/char/rust_example_3.ko \
261+
${{ env.BUILD_DIR }}samples/rust/*.o \
262+
${{ env.BUILD_DIR }}samples/rust/*.ko \
229263
${{ env.BUILD_DIR }}rust/*.o \
230264
${{ env.BUILD_DIR }}vmlinux \
231265
${{ env.BUILD_DIR }}${{ env.IMAGE_PATH }}
232266
233267
size \
234-
${{ env.BUILD_DIR }}drivers/char/rust_example.o \
235-
${{ env.BUILD_DIR }}drivers/char/rust_example_3.ko \
268+
${{ env.BUILD_DIR }}samples/rust/*.o \
269+
${{ env.BUILD_DIR }}samples/rust/*.ko \
236270
${{ env.BUILD_DIR }}rust/*.o \
237271
${{ env.BUILD_DIR }}vmlinux
238272

0 commit comments

Comments
 (0)