From 709a0e29f3f727ad44038c4b68c512e234040f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= Date: Wed, 18 Sep 2013 18:50:16 +0000 Subject: signal: add test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Asbjørn Sloth Tønnesen Signed-off-by: Emil Renner Berthing --- test/signal.lua | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 test/signal.lua diff --git a/test/signal.lua b/test/signal.lua new file mode 100755 index 0000000..46c85a2 --- /dev/null +++ b/test/signal.lua @@ -0,0 +1,61 @@ +#!bin/lem +-- +-- This file is part of LEM, a Lua Event Machine. +-- Copyright 2013 Asbjørn Sloth Tønnesen +-- +-- LEM is free software: you can redistribute it and/or modify it +-- under the terms of the GNU Lesser General Public License as +-- published by the Free Software Foundation, either version 3 of +-- the License, or (at your option) any later version. +-- +-- LEM is distributed in the hope that it will be useful, but +-- WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with LEM. If not, see . +-- + +package.path = '?.lua' +package.cpath = '?.so' + +local signal = require 'lem.signal' +local utils = require 'lem.utils' +local io = require 'lem.io' + +local sleeper = utils.newsleeper() + +assert(signal.register('sigchld', function(signum, ev) + if ev.type == 'exited' then + print('child ' .. ev.type .. ' with status ' .. ev.status) + end +end)) + +local cmd = 'sleep 0.5' +print('starting child: `'..cmd..'`'); +io.popen(cmd) + +sleeper:sleep(1) + +local function handler(signum) + print('got signal number ' .. signum) +end + +print('catch sigint') +assert(signal.register('SIGINT', handler)) + +sleeper:sleep(5) + +print('restore sigint') +assert(signal.unregister('SIGINT', handler)) + +sleeper:sleep(5) + +print('catch sigint') +assert(signal.register('SIGINT', handler)) + +sleeper:sleep(5) +print('exiting') + +-- vim: ts=2 sw=2 noet: -- cgit v1.2.1