aboutsummaryrefslogtreecommitdiff
path: root/src/primitive/string.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/primitive/string.rs')
-rw-r--r--src/primitive/string.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/primitive/string.rs b/src/primitive/string.rs
index dcd4f7c..590c529 100644
--- a/src/primitive/string.rs
+++ b/src/primitive/string.rs
@@ -50,6 +50,7 @@ impl Deserialize for String {
// length as usize
let ulen = len as usize;
+ trace!("parsed bytes: {:x?}", &b[0..ulen]);
let mut pos: usize = 4;
let mut chars: Vec<u16> = Vec::new();
loop {
@@ -91,7 +92,62 @@ impl DeserializeUTF8 for String {
}
trace!("parsed string after trunc: {}", res);
+ trace!("parsed bytes: {:x?}", &b[0..ulen]);
return Ok((ulen + 4, res));
}
}
+
+#[test]
+pub fn string_serialize() {
+ let test_string: String = String::from("Configured");
+
+ assert_eq!(
+ test_string.serialize().unwrap(),
+ [
+ 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114, 0, 101, 0,
+ 100
+ ]
+ );
+}
+
+#[test]
+pub fn string_serialize_utf8() {
+ let test_string: String = String::from("Configured");
+
+ assert_eq!(
+ test_string.serialize_utf8().unwrap(),
+ [0, 0, 0, 10, 67, 111, 110, 102, 105, 103, 117, 114, 101, 100]
+ );
+}
+
+#[test]
+pub fn string_deserialize() {
+ let test_bytes: &[u8] = &[
+ 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114, 0, 101, 0, 100,
+ 0, 0, 0, 1,
+ ];
+ let (len, res) = String::parse(test_bytes).unwrap();
+ assert_eq!(res, "Configured");
+ assert_eq!(len, 24);
+}
+
+#[test]
+pub fn string_deserialize_utf8() {
+ let test_bytes: &[u8] = &[
+ 0, 0, 0, 10, 67, 111, 110, 102, 105, 103, 117, 114, 101, 100, 0, 0, 0, 1,
+ ];
+ let (len, res) = String::parse_utf8(test_bytes).unwrap();
+ assert_eq!(len, 14);
+ assert_eq!(res, "Configured");
+}
+
+#[test]
+pub fn string_deserialize_utf8_null_terminated() {
+ let test_bytes: &[u8] = &[
+ 0, 0, 0, 11, 67, 111, 110, 102, 105, 103, 117, 114, 101, 100, 0, 0, 0, 0, 1,
+ ];
+ let (len, res) = String::parse_utf8(test_bytes).unwrap();
+ assert_eq!(len, 15);
+ assert_eq!(res, "Configured");
+}
ules/users/default.nix?id=030ccf76cad8afcc9484361644a85c904275b9ef&follow=1'>move git hosting to plain git-shell and cgitMax Audron-34/+126 2025-10-26fix slskd stuffMax Audron-22/+67 2025-10-23uhMax Audron-9/+31 2025-10-22deploy soulseek and fix tlmp VPNMax Audron-47/+1744 2025-10-21add slskdMax Audron-1/+124 2025-10-10update nixpkgs-unstableMax Audron-3/+3 2025-10-10setup mailserverMax Audron-27/+213 2025-09-20replace dns bgp anouncementMax Audron-2/+2 2025-09-15update flaresolverrMax Audron-1/+1 2025-09-07add audron windows wg keyMax Audron-0/+8 2025-09-02switch out vultr dns ipv4 ipMax Audron-1/+5 2025-08-11disable homepage trackersMax Audron-3/+3 2025-08-11add mail serverMax Audron-1/+245 2025-08-05add prometheus alerting rulesMax Audron-38/+144 2025-08-01add homepage dashboardMax Audron-3/+284 2025-08-01disable not used gameserversMax Audron-1/+2 2025-08-01add minecraft prometheus exporterMax Audron-3/+67 2025-08-01more monitoring & scrape config shortcutsMax Audron-68/+63 2025-08-01update garage to 2.0Max Audron-6/+10 2025-07-31fix authentik-ldap port bindingsMax Audron-0/+5 2025-07-31update to nixos 25.05Max Audron-113/+65 2025-07-31add more monitoring exporters and scrapersMax Audron-17/+57 2025-07-30try to run authentik nativelyMax Audron-26/+303 2025-07-30more metricsMax Audron-1/+41 2025-07-30enable firewallsMax Audron-1/+39