diff --git a/Cargo.lock b/Cargo.lock index dd5c848..bd67eed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,9 +218,9 @@ checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "codespan-reporting" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" +checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" dependencies = [ "serde", "termcolor", @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.186" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9c4fe7f2f5dc5c62871a1b43992d197da6fa1394656a94276ac2894a90a6fe" +checksum = "747d8437319e3a2f43d93b341c137927ca70c0f5dabeea7a005a73665e247c7e" dependencies = [ "cc", "cxx-build", @@ -294,9 +294,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.186" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5cf2909d37d80633ddd208676fc27c2608a7f035fff69c882421168038b26dd" +checksum = "b0f4697d190a142477b16aef7da8a99bfdc41e7e8b1687583c0d23a79c7afc1e" dependencies = [ "cc", "codespan-reporting", @@ -309,9 +309,9 @@ dependencies = [ [[package]] name = "cxxbridge-cmd" -version = "1.0.186" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "077f5ee3d3bfd8d27f83208fdaa96ddd50af7f096c77077cc4b94da10bfacefd" +checksum = "d0956799fa8678d4c50eed028f2de1c0552ae183c76e976cf7ca8c4e36a7c328" dependencies = [ "clap", "codespan-reporting", @@ -323,20 +323,19 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.186" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0108748615125b9f2e915dfafdffcbdabbca9b15102834f6d7e9a768f2f2864" +checksum = "23384a836ab4f0ad98ace7e3955ad2de39de42378ab487dc28d3990392cb283a" [[package]] name = "cxxbridge-macro" -version = "1.0.186" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e896681ef9b8dc462cfa6961d61909704bde0984b30bcb4082fe102b478890" +checksum = "e6acc6b5822b9526adfb4fc377b67128fdd60aac757cc4a741a6278603f763cf" dependencies = [ "indexmap", "proc-macro2", "quote", - "rustversion", "syn", ] @@ -430,6 +429,13 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "example-rs" +version = "0.0.0" +dependencies = [ + "cxx", +] + [[package]] name = "filetime" version = "0.2.27" @@ -872,12 +878,6 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - [[package]] name = "same-file" version = "1.0.6" diff --git a/packages/test-mod/src/lib.rs b/packages/test-mod/src/lib.rs index 2792256..a950a4e 100644 --- a/packages/test-mod/src/lib.rs +++ b/packages/test-mod/src/lib.rs @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2026 Megaton contributors - mod fs_tests; #[cxx::bridge] @@ -120,7 +119,41 @@ fn megaton_num_tests(mtt: &mut MegatonTests) { fn megaton_string_tests(mtt: &mut MegatonTests) { mtt.start_category("Strings"); + mtt.megaton_assert("", ""); + + let mut s: String = "Hello, Megaton!".to_string(); + mtt.megaton_assert(s.as_str(), "Hello, Megaton!"); + s.make_ascii_uppercase(); + mtt.megaton_assert(s.as_str(), "HELLO, MEGATON!"); + s.push_str(" These are string tests"); + mtt.megaton_assert(s, "HELLO, MEGATON! These are string tests".to_string()); + + let mut s: String = String::new(); + let mut len = s.len(); + for _ in 0..10 { + s.push('a'); + len += 1; + mtt.megaton_assert(s.len(), len); + } + mtt.megaton_assert(s, "aaaaaaaaaa".to_string()); + + let mut s: String = "a".to_string(); + s = s.chars().rev().collect(); + mtt.megaton_assert(s.clone(), "a".to_string()); + s.push('b'); + mtt.megaton_assert(s.clone(), "ab".to_string()); + s = s.chars().rev().collect(); + mtt.megaton_assert(s.clone(), "ba".to_string()); + s.push('c'); + mtt.megaton_assert(s.clone(), "bac".to_string()); + s = s.chars().rev().collect(); + mtt.megaton_assert(s.clone(), "cab".to_string()); + s.push('d'); + mtt.megaton_assert(s.clone(), "cabd".to_string()); + s = s.chars().rev().collect(); + mtt.megaton_assert(s, "dbac".to_string()); + mtt.end_category(); }