~ubuntu-branches/ubuntu/trusty/fluxbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/tests/signaltest.cc

  • Committer: Package Import Robot
  • Author(s): Paul Tagliamonte
  • Date: 2010-08-12 21:16:02 UTC
  • mfrom: (0.1.1) (1.1.10)
  • Revision ID: package-import@ubuntu.com-20100812211602-3tsmzl9in5nmwz7z
Tags: 1.1.1+git20100807.0cc08f9-1
* debian/ dir has been cleaned out, complete repackage
  of most files.
* pulled new archive from git.fluxbox.org HEAD, saved as
  tar.gz.
* Added in fluxbox.* files from the old dfsg tree.
* Added in system.fluxbox-menu file from the old dfsg tree
* Added the source/format file to bump package source
  version from 1.0 to 3.0 (quilt). 
* Changed rules file to match the old dfsg setup so that
  fluxbox behaves nicely.
* Removed entries from copyright that no longer apply.
* Added theme based on Denis Brand ( naran )'s old theme.
* Added a background I whipped up.
* Changed compile flags to point to debian theme by default
* Adding a patch to have fluxbox use x-terminal-emulator
  over xterm. Closes: #591694 (LP: #580485)
* Adding a patch to allow titlebar-window dragging.
* Changed the flags in rules to pull from a script. This script
  lets us un-hardcode what theme is default. Be sure there
  is a theme pack!
* Added comments to my patches.
* Removing debian/docs, empty file.
* Fixing fluxbox.desktop to remove all the warnings from
  desktop-file-validate
* Fixing libtool issue by running an update before
  configure in the rules script.
* Added a compile flag script to auto-detect what platform
  we are running on, and apply the correct theme. This
  should solve Ubuntnu issues later on.
* adding in a get-orig-source rule
* fixing the upstream version number to pinpoint
  the commit ( thanks, lfaraone ).
* adding a rule for get-orig-source. ( thanks again,
  lfaraone ).
* Updated rules to actually allow us to do a build from it
* Removed Denis from the uploaders ( as per an email
  conversation )
* Removing madduck from the uploaders ( thanks for asking,
  lfaraone. ). Thanks for your hard work, madduck.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// signaltest.cc for testing signal handler in fluxbox
 
2
// Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org)
 
3
//
 
4
// Permission is hereby granted, free of charge, to any person obtaining a
 
5
// copy of this software and associated documentation files (the "Software"),
 
6
// to deal in the Software without restriction, including without limitation
 
7
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 
8
// and/or sell copies of the Software, and to permit persons to whom the
 
9
// Software is furnished to do so, subject to the following conditions:
 
10
//
 
11
// The above copyright notice and this permission notice shall be included in
 
12
// all copies or substantial portions of the Software.
 
13
//
 
14
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
15
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
16
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.        IN NO EVENT SHALL
 
17
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
18
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 
19
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 
20
// DEALINGS IN THE SOFTWARE.
 
21
 
 
22
#include "../FbTk/SignalHandler.hh"
 
23
 
 
24
#include <iostream>
 
25
#ifdef HAVE_CASSERT
 
26
  #include <cassert>
 
27
#else
 
28
  #include <assert.h>
 
29
#endif
 
30
 
 
31
using namespace std;
 
32
using namespace FbTk;
 
33
 
 
34
class IntSig:public SignalEventHandler {
 
35
public:
 
36
    void handleSignal(int signum) {
 
37
        assert(signum == SIGINT);
 
38
        cerr<<"Signal SIGINT!"<<endl;
 
39
        exit(0);
 
40
    }
 
41
};
 
42
 
 
43
class AllSig:public SignalEventHandler {
 
44
public:
 
45
    void handleSignal(int signum) {
 
46
        switch (signum) {
 
47
        case SIGSEGV:
 
48
            cerr<<"SIGSEGV";
 
49
            break;
 
50
        case SIGTERM:
 
51
            cerr<<"SIGTERM";
 
52
            break;
 
53
        case SIGUSR1:
 
54
            cerr<<"SIGUSR1";
 
55
            break;
 
56
        case SIGUSR2:
 
57
            cerr<<"SIGUSR2";
 
58
            break;
 
59
        default:
 
60
            cerr<<"signum = "<<signum;
 
61
        }
 
62
        cerr<<endl;
 
63
        if (signum == SIGTERM)
 
64
            exit(1); // end program
 
65
    }
 
66
};
 
67
 
 
68
int main(int argc, char **argv) {
 
69
    SignalHandler &sigh = SignalHandler::instance();
 
70
    
 
71
    IntSig handler;
 
72
    AllSig allhand;
 
73
        
 
74
    sigh.registerHandler(SIGINT, &handler);
 
75
    sigh.registerHandler(SIGSEGV, &allhand);
 
76
    sigh.registerHandler(SIGTERM, &allhand);
 
77
    sigh.registerHandler(SIGUSR1, &allhand);
 
78
    sigh.registerHandler(SIGUSR2, &allhand);
 
79
 
 
80
    cerr<<"Send signals to me :)"<<endl;
 
81
    while (1) {
 
82
        
 
83
    }
 
84
}
 
85
 
 
86