From 6a4c224c644f43c77e4707096dc83eba2c8a799b Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sun, 19 May 2024 12:01:33 +0200 Subject: [PATCH] tests(results): Add a test for results --- tests/result/expected.md | 0 tests/result/input.tri | 39 +++++++++++++++++++++++++++++++++++++++ tests/result/main.rs | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 tests/result/expected.md create mode 100644 tests/result/input.tri create mode 100644 tests/result/main.rs diff --git a/tests/result/expected.md b/tests/result/expected.md new file mode 100644 index 0000000..e69de29 diff --git a/tests/result/input.tri b/tests/result/input.tri new file mode 100644 index 0000000..9d0581e --- /dev/null +++ b/tests/result/input.tri @@ -0,0 +1,39 @@ +/* +* Copyright (C) 2023 - 2024: +* The Trinitrix Project +* SPDX-License-Identifier: LGPL-3.0-or-later +* +* This file is part of the Trixy crate for Trinitrix. +* +* Trixy is free software: you can redistribute it and/or modify +* it under the terms of the Lesser GNU General Public License as +* published by the Free Software Foundation, either version 3 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* and the Lesser GNU General Public License along with this program. +* If not, see . +*/ + + +mod trinitrix { + #[derive(Error)] + enum GetBError { + #[error = "Could not do A!"] + A, + + #[error = "Failed on calling b"] + B, + } + + fn get_a() -> Result; + fn get_b() -> Result; +} + +// Trixy is sort of a subset of rust +// vim: syntax=rust diff --git a/tests/result/main.rs b/tests/result/main.rs new file mode 100644 index 0000000..4b6e0b4 --- /dev/null +++ b/tests/result/main.rs @@ -0,0 +1,39 @@ +/* +* Copyright (C) 2023 - 2024: +* The Trinitrix Project +* SPDX-License-Identifier: LGPL-3.0-or-later +* +* This file is part of the Trixy crate for Trinitrix. +* +* Trixy is free software: you can redistribute it and/or modify +* it under the terms of the Lesser GNU General Public License as +* published by the Free Software Foundation, either version 3 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* and the Lesser GNU General Public License along with this program. +* If not, see . +*/ + +use pretty_assertions::assert_eq; +use trixy::macros::config::{file_tree::FileTree, trixy::TrixyConfig}; + +#[test] +pub fn result() { + let input = include_str!("./expected.md"); + let expected: FileTree = input.parse().unwrap(); + + let config = TrixyConfig::new("callback_function") + .out_dir_path("out/dir") + .trixy_path("./tests/result/input.tri") + .dist_dir_path("dist") + .add_c_headers(false); + + let actual = config.generate(); + assert_eq!(expected, actual); +}