From fa259497425e4c17e675b7214fe206bed52738dc Mon Sep 17 00:00:00 2001 From: Michael Larabel Date: Sat, 13 Sep 2008 08:27:30 -0400 Subject: timed_screenshot: A module that takes a screenshot while tests are running at a pre-defined interval --- pts-core/modules/module-variables.txt | 1 + pts-core/modules/timed_screenshot.php | 81 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 pts-core/modules/timed_screenshot.php (limited to 'pts-core/modules') diff --git a/pts-core/modules/module-variables.txt b/pts-core/modules/module-variables.txt index 1a6e930..30cda4a 100644 --- a/pts-core/modules/module-variables.txt +++ b/pts-core/modules/module-variables.txt @@ -3,3 +3,4 @@ FORCE_AA=graphics_override FORCE_AF=graphics_override HALT_SCREENSAVER=toggle_screensaver EMAIL_RESULTS_TO=email_results +SCREENSHOT_INTERVAL=timed_screenshot diff --git a/pts-core/modules/timed_screenshot.php b/pts-core/modules/timed_screenshot.php new file mode 100644 index 0000000..2c0874f --- /dev/null +++ b/pts-core/modules/timed_screenshot.php @@ -0,0 +1,81 @@ +. +*/ + +class timed_screenshot extends pts_module_interface +{ + const module_name = "Timed Screenshot"; + const module_version = "0.1.0"; + const module_description = "This is a module that will take a screenshot of the system at a pre-defined interval. ImageMagick must be installed onto the system prior to using this module."; + const module_author = "Phoronix Media"; + + static $screenshot_count = 0; + static $screenshot_interval = 15; + + public static function __startup() + { + pts_module::remove_file("is_running"); + $PATH = getenv("PATH"); + $found = false; + + foreach(explode(":", $PATH) as $single_path) + if(is_file($single_path . "/import")) + $found = true; + + if(!$found) + { + echo "\nImageMagick must first be installed onto this system!\n"; + return PTS_MODULE_UNLOAD; + } + + if(($interval = getenv("SCREENSHOT_INTERVAL")) > 0 && is_numeric($interval)) + self::$screenshot_interval = $interval; + } + public static function __shutdown() + { + if(self::$screenshot_count > 0) + echo "\n" . self::$screenshot_count . " screenshots recorded. They are saved in the " . pts_module::save_dir() . " directory.\n"; + } + + public static function __pre_run_process() + { + pts_module::pts_timed_function(self::$screenshot_interval, "take_screenshot"); + } + public static function __pre_test_run() + { + pts_module::save_file("is_running", "yes"); + } + public static function __post_test_run() + { + pts_module::remove_file("is_running"); + } + public static function take_screenshot() + { + if(pts_module::read_file("is_running") == "yes") + { + shell_exec("import -window root " . pts_module::save_dir() . "screenshot-" . self::$screenshot_count . ".png"); + self::$screenshot_count++; + } + } +} + +?> -- cgit