From 2a7f262b7df8761261a0fa618394f4e991733a5e Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Mon, 3 Aug 2015 15:01:23 +0200 Subject: [PATCH] Lock and flush stdout in Window#alert. We use alert() to communicate test results to wptrunner. Unfortunately, sometimes the alert output is interleaved with other output on stdout, causing wptrunner to classify the test result as a timeout. I hope this will avoid that scenario. --- components/script/dom/window.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index d7a9e9f243a..4e90cc71012 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -72,6 +72,7 @@ use std::cell::{Cell, Ref, RefMut, RefCell}; use std::collections::HashSet; use std::default::Default; use std::ffi::CString; +use std::io::{stdout, Write}; use std::mem as std_mem; use std::rc::Rc; use std::sync::Arc; @@ -342,7 +343,10 @@ impl<'a> WindowMethods for &'a Window { // https://html.spec.whatwg.org/#dom-alert fn Alert(self, s: DOMString) { // Right now, just print to the console - println!("ALERT: {}", s); + let stdout = stdout(); + let mut stdout = stdout.lock(); + writeln!(&mut stdout, "ALERT: {}", s).unwrap(); + stdout.flush().unwrap(); } // https://html.spec.whatwg.org/multipage/#dom-window-close