summaryrefslogtreecommitdiff
path: root/tests/depend.rs
blob: 12d6e756d950f6258e2a7e25ea80716692ada31e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use gentoo_utils::{
    Parseable,
    depend::{self, Expr},
};
use mon::{Parser, eof, input::InputIter, tag, whitespace1};
use std::fs;

#[test]
fn parse_md5_cache() {
    let md5_cache = "/var/db/repos/gentoo/metadata/md5-cache";

    for cat in fs::read_dir(md5_cache).unwrap() {
        for pkg in fs::read_dir(cat.unwrap().path()).unwrap() {
            let metadata = fs::read_to_string(pkg.unwrap().path()).unwrap();

            for line in metadata.lines() {
                if line.starts_with("DEPEND=") {
                    eprintln!("{line}");
                    eprintln!();
                    Expr::parser()
                        .separated_list(whitespace1(), 0..)
                        .ignore()
                        .or(eof())
                        .preceded_by(tag("DEPEND="))
                        .check_finished(InputIter::new(line))
                        .unwrap();
                }
            }
        }
    }
}