File tree Expand file tree Collapse file tree 5 files changed +114
-4
lines changed Expand file tree Collapse file tree 5 files changed +114
-4
lines changed Original file line number Diff line number Diff line change @@ -51,5 +51,8 @@ Thumbs.db
51
51
target /
52
52
Cargo.lock
53
53
54
+ # Meson build directory
55
+ builddir /
56
+
54
57
# Coverage reports
55
58
.coverage /
Original file line number Diff line number Diff line change @@ -93,6 +93,20 @@ cargo install --path .
93
93
torrust-testing-infra
94
94
```
95
95
96
+ #### Development Tasks
97
+
98
+ This project uses [ Meson] ( https://mesonbuild.com/ ) as a task runner for common development commands:
99
+
100
+ ``` bash
101
+ # Setup Meson (one-time setup)
102
+ meson setup builddir
103
+
104
+ # Run comprehensive clippy linting
105
+ meson compile -C builddir clippy
106
+ ```
107
+
108
+ ** [ 📖 See full Meson setup guide →] ( docs/meson.md ) **
109
+
96
110
#### Running E2E Tests
97
111
98
112
Use the E2E tests binary to run automated infrastructure tests:
Original file line number Diff line number Diff line change
1
+ # Meson Task Runner Setup
2
+
3
+ This project uses [ Meson] ( https://mesonbuild.com/ ) as a task runner to wrap common development commands and make them easier to execute.
4
+
5
+ ## Prerequisites
6
+
7
+ Make sure you have Meson installed:
8
+
9
+ ``` bash
10
+ # On Ubuntu/Debian
11
+ sudo apt install meson
12
+
13
+ # On other systems, check: https://mesonbuild.com/Getting-meson.html
14
+ ```
15
+
16
+ ## Setup
17
+
18
+ 1 . Initialize the Meson build directory (only needed once):
19
+
20
+ ``` bash
21
+ meson setup builddir
22
+ ```
23
+
24
+ This creates a ` builddir/ ` directory with the Meson configuration.
25
+
26
+ ## Available Commands
27
+
28
+ ### Clippy Linter
29
+
30
+ Run the comprehensive Clippy linter with all lint categories enabled:
31
+
32
+ ``` bash
33
+ meson compile -C builddir clippy
34
+ ```
35
+
36
+ This is equivalent to running:
37
+
38
+ ``` bash
39
+ CARGO_INCREMENTAL=0 cargo clippy --no-deps --tests --benches --examples --workspace --all-targets --all-features -- -D clippy::correctness -D clippy::suspicious -D clippy::complexity -D clippy::perf -D clippy::style -D clippy::pedantic
40
+ ```
41
+
42
+ ## Why Use Meson?
43
+
44
+ - ** Shorter commands** : Instead of typing long cargo commands, use simple meson targets
45
+ - ** Consistent environment** : Commands run with the same environment variables every time
46
+ - ** Easy to extend** : Add new targets to ` meson.build ` as needed
47
+ - ** IDE integration** : Many IDEs can integrate with Meson build systems
48
+
49
+ ## Adding More Commands
50
+
51
+ To add more commands, edit the ` meson.build ` file and add new ` run_target() ` definitions. After modifying the file, you may need to reconfigure:
52
+
53
+ ``` bash
54
+ meson setup builddir --reconfigure
55
+ ```
56
+
57
+ ## Directory Structure
58
+
59
+ ``` text
60
+ project-root/
61
+ ├── meson.build # Meson configuration with task definitions
62
+ ├── builddir/ # Meson build directory (auto-generated)
63
+ └── ... # Your project files
64
+ ```
65
+
66
+ The ` builddir/ ` directory is automatically generated and can be safely deleted and recreated.
Original file line number Diff line number Diff line change
1
+ project (' torrust-testing-infra' , ' rust' ,
2
+ version : ' 0.1.0' ,
3
+ default_options : [' warning_level=3' ])
4
+
5
+ # Clippy linter with comprehensive checks
6
+ run_target (' clippy' ,
7
+ command : [
8
+ ' env' ,
9
+ ' CARGO_INCREMENTAL=0' ,
10
+ ' cargo' , ' clippy' ,
11
+ ' --no-deps' ,
12
+ ' --tests' ,
13
+ ' --benches' ,
14
+ ' --examples' ,
15
+ ' --workspace' ,
16
+ ' --all-targets' ,
17
+ ' --all-features' ,
18
+ ' --' ,
19
+ ' -D' , ' clippy::correctness' ,
20
+ ' -D' , ' clippy::suspicious' ,
21
+ ' -D' , ' clippy::complexity' ,
22
+ ' -D' , ' clippy::perf' ,
23
+ ' -D' , ' clippy::style' ,
24
+ ' -D' , ' clippy::pedantic'
25
+ ])
Original file line number Diff line number Diff line change @@ -364,10 +364,12 @@ impl Drop for TestEnvironment {
364
364
if !self . keep_env {
365
365
// Try basic cleanup in case async cleanup failed
366
366
let tofu_dir = self . project_root . join ( "config/tofu/lxd" ) ;
367
- drop ( Command :: new ( "tofu" )
368
- . args ( [ "destroy" , "-auto-approve" ] )
369
- . current_dir ( & tofu_dir)
370
- . output ( ) ) ;
367
+ drop (
368
+ Command :: new ( "tofu" )
369
+ . args ( [ "destroy" , "-auto-approve" ] )
370
+ . current_dir ( & tofu_dir)
371
+ . output ( ) ,
372
+ ) ;
371
373
}
372
374
}
373
375
}
You can’t perform that action at this time.
0 commit comments