From 4a8219925b5765953bb7f2d596379f6c1715c5e9 Mon Sep 17 00:00:00 2001 From: Nathan Wang Date: Tue, 30 Jul 2024 22:23:57 -0400 Subject: [PATCH] use utf8 lossy --- README.md | 16 ++++++++++++++++ src/run_command.rs | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 27bb3e7..6fb0be5 100644 --- a/README.md +++ b/README.md @@ -96,3 +96,19 @@ SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior solution.cpp:15:8 */ // which is what leetcode gives you ``` + +Better logging: https://docs.aws.amazon.com/lambda/latest/dg/rust-logging.html + +utf8 encoding regression test: + +``` +// Source: https://usaco.guide/general/io + +#include +using namespace std; + +int main() { + char c = 128; + cout << c << endl; +} +``` diff --git a/src/run_command.rs b/src/run_command.rs index 90b979a..15ddbe1 100644 --- a/src/run_command.rs +++ b/src/run_command.rs @@ -116,7 +116,7 @@ pub fn run_command( let process = process.wait_with_output()?; - let timing_output = parse_timing_stderr(str::from_utf8(&process.stderr)?)?; + let timing_output = parse_timing_stderr(String::from_utf8_lossy(&process.stderr).as_ref())?; Ok(CommandOutput { exit_code: process.status.into_raw(), @@ -125,7 +125,7 @@ pub fn run_command( signal.to_string() }) }), - stdout: str::from_utf8(&process.stdout)?.to_string(), + stdout: String::from_utf8_lossy(&process.stdout).into_owned(), stderr: timing_output.stderr, wall_time: timing_output.wall_time, memory_usage: timing_output.memory_usage,