Commit Graph

88 Commits

Author SHA1 Message Date
John Turner
ff7d9b312f fix lints 2025-11-19 05:04:44 +00:00
John Turner
ad8a4b838b remove dbg! 2025-11-19 05:04:44 +00:00
John Turner
0d40608404 compare versions as strings rather than parsing them to ints
Parsing version numbers to u64s could cause an panic on int overflow
with very large versions.
2025-11-19 05:04:40 +00:00
John Turner
8d3cf7c83d allow missing panic docs 2025-11-19 05:01:12 +00:00
John Turner
16fdd27e9a compare letters before suffixes, and having a letter is greater than none 2025-11-19 01:17:18 +00:00
John Turner
70e8ea24a8 impl vercmp fuzzer 2025-11-19 01:00:48 +00:00
John Turner
e01637fd3a setup meson to allow building multiple fuzzers easily 2025-11-18 22:43:22 +00:00
John Turner
e0cc7f6a03 dont allow "." in repo names 2025-11-18 04:24:41 +00:00
John Turner
c75a38f615 allow slot to be only :* := :slot/sub= or :slot 2025-11-18 04:15:53 +00:00
John Turner
2dc5df6112 support portage build-id extension 2025-11-18 03:21:44 +00:00
John Turner
e2cc948803 take at least 1 usedep 2025-11-18 02:49:30 +00:00
John Turner
920ec36141 skip atoms that portage denies for having duplicate usedeps 2025-11-18 02:46:59 +00:00
John Turner
2d0a91eb18 check if fuzz input is graphical before decoding it to UTF8 2025-11-18 02:46:33 +00:00
John Turner
46c3c075d1 disallow atoms that end in what could be a valid version 2025-11-18 02:20:57 +00:00
John Turner
78398b7ebe support ::repo syntax 2025-11-18 01:44:45 +00:00
John Turner
db02762ee1 version wildcard comes after the version expression 2025-11-18 01:27:29 +00:00
John Turner
d4fd6cd211 add false positive case to unit tests 2025-11-17 22:58:46 +00:00
John Turner
34362dcb29 in fuzz python process, inherit stderr so we can see python errors 2025-11-17 22:46:09 +00:00
John Turner
dc47258841 reject fuzz inputs with invisible characters 2025-11-17 22:45:41 +00:00
John Turner
63db65b2f0 bump mon for bug fixes 2025-11-17 21:20:40 +00:00
John Turner
b74471706b communicate with python over a pipe to increase fuzzing performance 2025-11-17 20:02:16 +00:00
John Turner
0cc3ac8e84 verify that slot exprs have either a primary slot name or operator 2025-11-17 19:01:39 +00:00
John Turner
803f727082 fixup 2025-11-16 22:22:12 +00:00
John Turner
d04d2d0887 push check.sh 2025-11-16 22:02:27 +00:00
John Turner
b360132b99 generate corpus to fuzz on with meson 2025-11-16 21:57:40 +00:00
John Turner
424bd9d072 move fuzz stuff into its own directory 2025-11-16 20:31:19 +00:00
John Turner
7c404ca8c5 add fuzzer 2025-11-16 20:17:35 +00:00
John Turner
fdf1f09d6f add meson support 2025-11-15 21:08:39 +00:00
John Turner
c0bd0c9efd Merge commit '6eba9cd92c295c5389944f6adda1f1e83b2cb008' as 'subprojects/thiserror' 2025-11-15 20:18:36 +00:00
John Turner
6eba9cd92c Squashed 'subprojects/thiserror/' content from commit 247eab5
git-subtree-dir: subprojects/thiserror
git-subtree-split: 247eab5d79e27ad28859afdf8bc600a4242829b7
2025-11-15 20:18:36 +00:00
John Turner
0436fbc770 fix clippy lints 2025-11-15 01:55:19 +00:00
John Turner
dfaad015b9 impl conversion methods for Atom and Cp 2025-11-15 00:10:55 +00:00
John Turner
9c7d38f82c having more components, even if zeros, make an atom greater 2025-11-14 23:16:25 +00:00
John Turner
5a793bebe8 check if a OR b has leading zeros, and if so, strip and do ascii cmp 2025-11-14 23:15:01 +00:00
John Turner
07d1823f0f compare version letter in version cmp algo 2025-11-14 23:13:19 +00:00
John Turner
29af7572a0 remove leftover dbgs! 2025-11-14 22:27:58 +00:00
John Turner
61292f6646 bump mon and use SeparatedByWithTrailing combinator where needed
The new version of mon fixed the SeparatedBy combinator to not allow
trailing delimiters. This broke the Depend expr parser, because the
exprs are padded with whitespace. Using the new
SeparatedByWithTrailing combinator fixes this issue.
2025-11-14 22:25:20 +00:00
John Turner
85853ada1e take at least 1 version suffix to prevent allowing versions such as 1.0_ 2025-11-14 19:27:19 +00:00
John Turner
50ab68c9c5 use new mon parsers 2025-11-13 23:21:46 +00:00
John Turner
58b4592b7b bump mon 2025-11-13 23:04:37 +00:00
John Turner
36bdbbd8bc allow Cpv type to have a slot 2025-11-13 19:57:28 +00:00
John Turner
0448a52926 impl Cp type 2025-11-13 19:49:22 +00:00
John Turner
874be77aa4 impl porthole tests 2025-11-13 18:04:09 +00:00
John Turner
1882ce3137 impl Cpv type 2025-11-13 18:03:34 +00:00
John Turner
f4a45717d2 impl version comparison algorithm 2025-11-13 18:00:15 +00:00
John Turner
3b7a662598 bump mon 2025-11-13 17:58:58 +00:00
John Turner
732c129c67 disallow stars in VersionNumber parser 2025-11-12 23:05:36 +00:00
John Turner
008e94b3d5 track Cargo.lock 2025-11-10 18:30:03 +00:00
John Turner
b147d967d4 put version and version operator in the same Option in the Atom struct
All atoms must either have a version with a version operator, or have
no version and no version operator. Putting these in the same Option
helps encode that into the type system.
2025-11-08 22:13:14 +00:00
John Turner
5fd26e7c81 improve repo error message by including the path in the error enum 2025-11-08 22:12:45 +00:00