These look like minor failures to do with quoting of labels.
> rpm -q graphviz
graphviz-2.49.3-2.4.x86_64
> cargo test
Compiling rudg v0.2.0-dev (/home/jayvdb/rust/rudg)
Finished test [unoptimized + debuginfo] target(s) in 0.74s
Running unittests src/lib.rs (target/debug/deps/rudg-a1cdaa90caa6ae09)
running 17 tests
test graph_exporter::to_dot::tests::test_uml_class_composition ... FAILED
test file_reader::tests::test_visit_dirs ... ok
test graph_exporter::to_dot::tests::test_mods ... FAILED
test graph_exporter::to_dot::tests::test_uml_class_aggregation ... FAILED
test graph_exporter::to_dot::tests::test_uml_class_dependency ... FAILED
test graph_exporter::to_dot::tests::test_uml_class_association ... FAILED
test graph_exporter::to_dot::tests::test_uml_classes_fns_to_dot ... FAILED
test graph_exporter::to_dot::tests::test_uml_fn_relations ... FAILED
test graph_exporter::to_dot::tests::test_uml_class_realization ... FAILED
test parser::ast_parser::tests::test_parse_fn ... ok
test parser::ast_parser::tests::test_parse_struct ... ok
test parser::ast_parser::tests::test_aggregation ... ok
test parser::ast_parser::tests::test_composition ... ok
test parser::ast_parser::tests::test_fn_dependency ... ok
test parser::ast_parser::tests::test_class_dependency ... ok
test parser::ast_parser::tests::test_association ... ok
test parser::ast_parser::tests::test_realization ... ok
failures:
---- graph_exporter::to_dot::tests::test_uml_class_composition stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_class_composition' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Mock\"[label=\"{Mock|c: C}\"][shape=\"record\"];\n \"C\"[label=\"C\"][shape=\"record\"];\n \"Mock\" -> \"C\"[label=\"\"][arrowhead=\"diamond\"];\n}\n"`,
right: `"digraph ast {\n Mock[label=\"{Mock|c: C}\"][shape=\"record\"];\n C[label=\"C\"][shape=\"record\"];\n Mock -> C[label=\"\"][arrowhead=\"diamond\"];\n}\n"`', src/graph_exporter/to_dot.rs:282:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
---- graph_exporter::to_dot::tests::test_mods stdout ----
thread 'graph_exporter::to_dot::tests::test_mods' panicked at 'The name of the subgraph should start with "cluster_"', /home/jayvdb/.cargo/registry/src/github.com-1ecc6299db9ec823/dot_graph-0.2.3/src/subgraph.rs:144:9
---- graph_exporter::to_dot::tests::test_uml_class_aggregation stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_class_aggregation' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Mock\"[label=\"{Mock|b: *mut B}\"][shape=\"record\"];\n \"B\"[label=\"B\"][shape=\"record\"];\n \"Mock\" -> \"B\"[label=\"\"][arrowtail=\"odiamond\"];\n}\n"`,
right: `"digraph ast {\n Mock[label=\"{Mock|b: *mut B}\"][shape=\"record\"];\n B[label=\"B\"][shape=\"record\"];\n Mock -> B[label=\"\"][arrowtail=\"odiamond\"];\n}\n"`', src/graph_exporter/to_dot.rs:264:9
---- graph_exporter::to_dot::tests::test_uml_class_dependency stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_class_dependency' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Mock\"[label=\"{Mock|mock_fn()}\"][shape=\"record\"];\n \"f1\"[label=\"f1\"];\n \"f2\"[label=\"f2\"];\n \"f1\" -> \"Mock\"[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n \"f2\" -> \"Mock\"[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n}\n"`,
right: `"digraph ast {\n Mock[label=\"{Mock|mock_fn()}\"][shape=\"record\"];\n f1[label=\"f1\"];\n f2[label=\"f2\"];\n f1 -> Mock[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n f2 -> Mock[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n}\n"`', src/graph_exporter/to_dot.rs:246:9
---- graph_exporter::to_dot::tests::test_uml_class_association stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_class_association' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Mock\"[label=\"{Mock|e2() -> E2}\"][shape=\"record\"];\n \"E1\"[label=\"{E1|b() -> Mock}\"][shape=\"record\"];\n \"E2\"[label=\"{E2|a() -> Mock}\"][shape=\"record\"];\n \"E1\" -> \"Mock\"[label=\"\"][arrowhead=\"vee\"];\n \"E2\" -> \"Mock\"[label=\"\"][arrowhead=\"none\"];\n}\n"`,
right: `"digraph ast {\n Mock[label=\"{Mock|e2() -> E2}\"][shape=\"record\"];\n E1[label=\"{E1|b() -> Mock}\"][shape=\"record\"];\n E2[label=\"{E2|a() -> Mock}\"][shape=\"record\"];\n E1 -> Mock[label=\"\"][arrowhead=\"vee\"];\n E2 -> Mock[label=\"\"][arrowhead=\"none\"];\n}\n"`', src/graph_exporter/to_dot.rs:322:9
---- graph_exporter::to_dot::tests::test_uml_classes_fns_to_dot stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_classes_fns_to_dot' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Main\"[label=\"{Main|a: String\\lb: String|main() -> ()\\lmain1()}\"][shape=\"record\"];\n \"MainTrait\"[label=\"{Interface\\lMainTrait|main() -> ()}\"][shape=\"record\"];\n \"test\"[label=\"test\"];\n}\n"`,
right: `"digraph ast {\n Main[label=\"{Main|a: String\\lb: String|main() -> ()\\lmain1()}\"][shape=\"record\"];\n MainTrait[label=\"{Interface\\lMainTrait|main() -> ()}\"][shape=\"record\"];\n test[label=\"test\"];\n}\n"`', src/graph_exporter/to_dot.rs:207:9
---- graph_exporter::to_dot::tests::test_uml_fn_relations stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_fn_relations' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"main\"[label=\"main\"];\n \"test\"[label=\"test\"];\n \"main\" -> \"test\"[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n}\n"`,
right: `"digraph ast {\n main[label=\"main\"];\n test[label=\"test\"];\n main -> test[label=\"\"][style=\"dashed\"][arrowhead=\"vee\"];\n}\n"`', src/graph_exporter/to_dot.rs:224:9
---- graph_exporter::to_dot::tests::test_uml_class_realization stdout ----
thread 'graph_exporter::to_dot::tests::test_uml_class_realization' panicked at 'assertion failed: `(left == right)`
left: `"digraph ast {\n \"Mock\"[label=\"Mock\"][shape=\"record\"];\n \"D\"[label=\"{Interface\\lD|a(&self) -> Option<T>}\"][shape=\"record\"];\n \"Mock\" -> \"D\"[label=\"\"][style=\"dashed\"][arrowhead=\"onormal\"];\n}\n"`,
right: `"digraph ast {\n Mock[label=\"Mock\"][shape=\"record\"];\n D[label=\"{Interface\\lD|a(&self) -> Option<T>}\"][shape=\"record\"];\n Mock -> D[label=\"\"][style=\"dashed\"][arrowhead=\"onormal\"];\n}\n"`', src/graph_exporter/to_dot.rs:300:9
failures:
graph_exporter::to_dot::tests::test_mods
graph_exporter::to_dot::tests::test_uml_class_aggregation
graph_exporter::to_dot::tests::test_uml_class_association
graph_exporter::to_dot::tests::test_uml_class_composition
graph_exporter::to_dot::tests::test_uml_class_dependency
graph_exporter::to_dot::tests::test_uml_class_realization
graph_exporter::to_dot::tests::test_uml_classes_fns_to_dot
graph_exporter::to_dot::tests::test_uml_fn_relations
test result: FAILED. 9 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
error: test failed, to rerun pass '--lib'