Skip to content

Commit 6b72d2e

Browse files
coolreader18youknowone
authored andcommitted
Check+lint examples, tests, and benches in CI
1 parent b6aacbf commit 6b72d2e

File tree

8 files changed

+37
-48
lines changed

8 files changed

+37
-48
lines changed

.github/workflows/ci.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ jobs:
141141
if: runner.os == 'macOS'
142142

143143
- name: run clippy
144-
run: cargo clippy ${{ env.CARGO_ARGS }} --workspace --exclude rustpython_wasm -- -Dwarnings
144+
run: cargo clippy ${{ env.CARGO_ARGS }} --workspace --all-targets --exclude rustpython_wasm -- -Dwarnings
145145

146146
- name: run rust tests
147147
run: cargo test --workspace --exclude rustpython_wasm --verbose --features threading ${{ env.CARGO_ARGS }}

benches/execution.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ use criterion::{
44
criterion_main,
55
};
66
use rustpython_compiler::Mode;
7-
use rustpython_parser::Parse;
8-
use rustpython_parser::ast;
97
use rustpython_vm::{Interpreter, PyResult, Settings};
108
use std::collections::HashMap;
119
use std::path::Path;
@@ -50,7 +48,7 @@ pub fn benchmark_file_execution(group: &mut BenchmarkGroup<WallTime>, name: &str
5048
pub fn benchmark_file_parsing(group: &mut BenchmarkGroup<WallTime>, name: &str, contents: &str) {
5149
group.throughput(Throughput::Bytes(contents.len() as u64));
5250
group.bench_function(BenchmarkId::new("rustpython", name), |b| {
53-
b.iter(|| ast::Suite::parse(contents, name).unwrap())
51+
b.iter(|| ruff_python_parser::parse_module(contents).unwrap())
5452
});
5553
group.bench_function(BenchmarkId::new("cpython", name), |b| {
5654
use pyo3::types::PyAnyMethods;

compiler/codegen/src/compile.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3660,7 +3660,7 @@ mod tests {
36603660
flags,
36613661
}),
36623662
});
3663-
assert_eq!(Compiler::contains_await(not_present), false);
3663+
assert!(!Compiler::contains_await(not_present));
36643664

36653665
// f'{await x}'
36663666
let expr_await_x = Expr::Await(ExprAwait {
@@ -3686,7 +3686,7 @@ mod tests {
36863686
flags,
36873687
}),
36883688
});
3689-
assert_eq!(Compiler::contains_await(present), true);
3689+
assert!(Compiler::contains_await(present));
36903690

36913691
// f'{x:{await y}}'
36923692
let expr_x = Expr::Name(ExprName {
@@ -3727,7 +3727,7 @@ mod tests {
37273727
flags,
37283728
}),
37293729
});
3730-
assert_eq!(Compiler::contains_await(present), true);
3730+
assert!(Compiler::contains_await(present));
37313731
}
37323732
}
37333733

compiler/src/lib.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ pub fn _compile_symtable(
159159
#[test]
160160
fn test_compile() {
161161
let code = "x = 'abc'";
162-
let compiled = compile(&code, Mode::Single, "<>", CompileOpts::default());
162+
let compiled = compile(code, Mode::Single, "<>", CompileOpts::default());
163163
dbg!(compiled.expect("compile error"));
164164
}
165165

@@ -172,7 +172,7 @@ def main():
172172
if __name__ == '__main__':
173173
main()
174174
"#;
175-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
175+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
176176
dbg!(compiled.expect("compile error"));
177177
}
178178

@@ -188,7 +188,7 @@ elif False:
188188
else:
189189
pass
190190
"#;
191-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
191+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
192192
dbg!(compiled.expect("compile error"));
193193
}
194194

@@ -197,7 +197,7 @@ fn test_compile_lambda() {
197197
let code = r#"
198198
lambda: 'a'
199199
"#;
200-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
200+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
201201
dbg!(compiled.expect("compile error"));
202202
}
203203

@@ -206,7 +206,7 @@ fn test_compile_lambda2() {
206206
let code = r#"
207207
(lambda x: f'hello, {x}')('world}')
208208
"#;
209-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
209+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
210210
dbg!(compiled.expect("compile error"));
211211
}
212212

@@ -223,7 +223,7 @@ def f():
223223
else:
224224
return g
225225
"#;
226-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
226+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
227227
dbg!(compiled.expect("compile error"));
228228
}
229229

@@ -232,7 +232,7 @@ fn test_compile_int() {
232232
let code = r#"
233233
a = 0xFF
234234
"#;
235-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
235+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
236236
dbg!(compiled.expect("compile error"));
237237
}
238238

@@ -241,7 +241,7 @@ fn test_compile_bigint() {
241241
let code = r#"
242242
a = 0xFFFFFFFFFFFFFFFFFFFFFFFF
243243
"#;
244-
let compiled = compile(&code, Mode::Exec, "<>", CompileOpts::default());
244+
let compiled = compile(code, Mode::Exec, "<>", CompileOpts::default());
245245
dbg!(compiled.expect("compile error"));
246246
}
247247

@@ -250,36 +250,36 @@ fn test_compile_fstring() {
250250
let code1 = r#"
251251
assert f"1" == '1'
252252
"#;
253-
let compiled = compile(&code1, Mode::Exec, "<>", CompileOpts::default());
253+
let compiled = compile(code1, Mode::Exec, "<>", CompileOpts::default());
254254
dbg!(compiled.expect("compile error"));
255255

256256
let code2 = r#"
257257
assert f"{1}" == '1'
258258
"#;
259-
let compiled = compile(&code2, Mode::Exec, "<>", CompileOpts::default());
259+
let compiled = compile(code2, Mode::Exec, "<>", CompileOpts::default());
260260
dbg!(compiled.expect("compile error"));
261261
let code3 = r#"
262262
assert f"{1+1}" == '2'
263263
"#;
264-
let compiled = compile(&code3, Mode::Exec, "<>", CompileOpts::default());
264+
let compiled = compile(code3, Mode::Exec, "<>", CompileOpts::default());
265265
dbg!(compiled.expect("compile error"));
266266

267267
let code4 = r#"
268268
assert f"{{{(lambda: f'{1}')}" == '{1'
269269
"#;
270-
let compiled = compile(&code4, Mode::Exec, "<>", CompileOpts::default());
270+
let compiled = compile(code4, Mode::Exec, "<>", CompileOpts::default());
271271
dbg!(compiled.expect("compile error"));
272272

273273
let code5 = r#"
274274
assert f"a{1}" == 'a1'
275275
"#;
276-
let compiled = compile(&code5, Mode::Exec, "<>", CompileOpts::default());
276+
let compiled = compile(code5, Mode::Exec, "<>", CompileOpts::default());
277277
dbg!(compiled.expect("compile error"));
278278

279279
let code6 = r#"
280280
assert f"{{{(lambda x: f'hello, {x}')('world}')}" == '{hello, world}'
281281
"#;
282-
let compiled = compile(&code6, Mode::Exec, "<>", CompileOpts::default());
282+
let compiled = compile(code6, Mode::Exec, "<>", CompileOpts::default());
283283
dbg!(compiled.expect("compile error"));
284284
}
285285

@@ -293,6 +293,6 @@ class RegexFlag:
293293
DEBUG = 1
294294
print(RegexFlag.NOFLAG & RegexFlag.DEBUG)
295295
"#;
296-
let compiled = compile(&code, Mode::Exec, "<string>", CompileOpts::default());
296+
let compiled = compile(code, Mode::Exec, "<string>", CompileOpts::default());
297297
dbg!(compiled.expect("compile error"));
298298
}

examples/dis.rs

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/// This an example usage of the rustpython_compiler crate.
2-
/// This program reads, parses, and compiles a file you provide
3-
/// to RustPython bytecode, and then displays the output in the
4-
/// `dis.dis` format.
5-
///
6-
/// example usage:
7-
/// $ cargo run --release --example dis demo*.py
1+
//! This an example usage of the rustpython_compiler crate.
2+
//! This program reads, parses, and compiles a file you provide
3+
//! to RustPython bytecode, and then displays the output in the
4+
//! `dis.dis` format.
5+
//!
6+
//! example usage:
7+
//! $ cargo run --release --example dis demo*.py
88
99
#[macro_use]
1010
extern crate log;
@@ -53,10 +53,7 @@ fn main() -> Result<(), lexopt::Error> {
5353
return Err("expected at least one argument".into());
5454
}
5555

56-
let opts = compiler::CompileOpts {
57-
optimize,
58-
..Default::default()
59-
};
56+
let opts = compiler::CompileOpts { optimize };
6057

6158
for script in &scripts {
6259
if script.exists() && script.is_file() {

examples/mini_repl.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
///! This example show cases a very simple REPL.
2-
///! While a much better REPL can be found in ../src/shell,
3-
///! This much smaller REPL is still a useful example because it showcases inserting
4-
///! values and functions into the Python runtime's scope, and showcases use
5-
///! of the compilation mode "Single".
1+
//! This example show cases a very simple REPL.
2+
//! While a much better REPL can be found in ../src/shell,
3+
//! This much smaller REPL is still a useful example because it showcases inserting
4+
//! values and functions into the Python runtime's scope, and showcases use
5+
//! of the compilation mode "Single".
6+
67
use rustpython_vm as vm;
78
// these are needed for special memory shenanigans to let us share a variable with Python and Rust
89
use std::sync::atomic::{AtomicBool, Ordering};

examples/parse_folder.rs

+1-10
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ fn parse_python_file(filename: &Path) -> ParsedFile {
6969
info!("Parsing file {:?}", filename);
7070
match std::fs::read_to_string(filename) {
7171
Err(e) => ParsedFile {
72-
filename: Box::new(filename.to_path_buf()),
73-
code: "".to_owned(),
7472
num_lines: 0,
7573
result: Err(e.to_string()),
7674
},
@@ -79,12 +77,7 @@ fn parse_python_file(filename: &Path) -> ParsedFile {
7977
let result = parse_module(&source)
8078
.map(|x| x.into_suite())
8179
.map_err(|e| e.to_string());
82-
ParsedFile {
83-
filename: Box::new(filename.to_path_buf()),
84-
code: source.to_string(),
85-
num_lines,
86-
result,
87-
}
80+
ParsedFile { num_lines, result }
8881
}
8982
}
9083
}
@@ -134,8 +127,6 @@ struct ScanResult {
134127
}
135128

136129
struct ParsedFile {
137-
filename: Box<PathBuf>,
138-
code: String,
139130
num_lines: usize,
140131
result: ParseResult,
141132
}

vm/sre_engine/tests/tests.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use rustpython_sre_engine::{Request, State, StrDrive};
22

33
struct Pattern {
4+
#[allow(unused)]
45
pattern: &'static str,
56
code: &'static [u32],
67
}
@@ -178,6 +179,7 @@ fn test_bigcharset() {
178179

179180
#[test]
180181
fn test_search_nonascii() {
182+
#[allow(unused)]
181183
// pattern p = re.compile('\xe0+')
182184
// START GENERATED by generate_tests.py
183185
#[rustfmt::skip] let p = Pattern { pattern: "\u{e0}+", code: &[14, 4, 0, 1, 4294967295, 24, 6, 1, 4294967295, 16, 224, 1, 1] };

0 commit comments

Comments
 (0)