Subversion Repositories HelenOS

Rev

Rev 4581 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4581 Rev 4718
1
/*
1
/*
2
 * Copyright (c) 2007 Martin Decky
2
 * Copyright (c) 2007 Martin Decky
3
 * All rights reserved.
3
 * All rights reserved.
4
 *
4
 *
5
 * Redistribution and use in source and binary forms, with or without
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions
6
 * modification, are permitted provided that the following conditions
7
 * are met:
7
 * are met:
8
 *
8
 *
9
 * - Redistributions of source code must retain the above copyright
9
 * - Redistributions of source code must retain the above copyright
10
 *   notice, this list of conditions and the following disclaimer.
10
 *   notice, this list of conditions and the following disclaimer.
11
 * - Redistributions in binary form must reproduce the above copyright
11
 * - Redistributions in binary form must reproduce the above copyright
12
 *   notice, this list of conditions and the following disclaimer in the
12
 *   notice, this list of conditions and the following disclaimer in the
13
 *   documentation and/or other materials provided with the distribution.
13
 *   documentation and/or other materials provided with the distribution.
14
 * - The name of the author may not be used to endorse or promote products
14
 * - The name of the author may not be used to endorse or promote products
15
 *   derived from this software without specific prior written permission.
15
 *   derived from this software without specific prior written permission.
16
 *
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 */
27
 */
28
 
28
 
29
/** @addtogroup tester
29
/** @addtogroup tester
30
 * @{
30
 * @{
31
 */
31
 */
32
/** @file
32
/** @file
33
 */
33
 */
34
 
34
 
35
#ifndef TESTER_H_
35
#ifndef TESTER_H_
36
#define TESTER_H_
36
#define TESTER_H_
37
 
37
 
38
#include <sys/types.h>
38
#include <sys/types.h>
39
#include <bool.h>
39
#include <bool.h>
40
#include <ipc/ipc.h>
40
#include <ipc/ipc.h>
41
 
41
 
42
#define IPC_TEST_START  10000
42
#define IPC_TEST_SERVICE  10240
43
#define MAX_PHONES      20
-
 
44
#define MAX_CONNECTIONS 50
43
#define IPC_TEST_METHOD   2000
45
#define TEST_SKIPPED    "Test Skipped"
-
 
46
 
-
 
47
extern int myservice;
-
 
48
extern int phones[MAX_PHONES];
-
 
49
extern int connections[MAX_CONNECTIONS];
-
 
50
extern ipc_callid_t callids[MAX_CONNECTIONS];
-
 
51
 
44
 
-
 
45
extern bool test_quiet;
-
 
46
extern int test_argc;
-
 
47
extern char **test_argv;
-
 
48
 
-
 
49
#define TPRINTF(format, ...) \
-
 
50
    { \
-
 
51
        if (!test_quiet) { \
-
 
52
            fprintf(stderr, format, ##__VA_ARGS__); \
-
 
53
        } \
-
 
54
    }
-
 
55
 
52
typedef char * (* test_entry_t)(bool);
56
typedef char *(*test_entry_t)(void);
53
 
57
 
54
typedef struct {
58
typedef struct {
55
    char * name;
59
    char *name;
56
    char * desc;
60
    char *desc;
57
    test_entry_t entry;
61
    test_entry_t entry;
58
    bool safe;
62
    bool safe;
59
} test_t;
63
} test_t;
60
 
64
 
61
extern char * test_thread1(bool quiet);
65
extern char *test_thread1(void);
62
extern char * test_print1(bool quiet);
66
extern char *test_print1(void);
63
extern char * test_print4(bool quiet);
67
extern char *test_print2(void);
64
extern char * test_fault1(bool quiet);
68
extern char *test_print3(void);
65
extern char * test_fault2(bool quiet);
69
extern char *test_print4(void);
66
extern char * test_register(bool quiet);
-
 
67
extern char * test_connect(bool quiet);
70
extern char *test_console1(void);
68
extern char * test_send_async(bool quiet);
71
extern char *test_stdio1(void);
69
extern char * test_send_sync(bool quiet);
72
extern char *test_stdio2(void);
70
extern char * test_answer(bool quiet);
73
extern char *test_fault1(void);
71
extern char * test_hangup(bool quiet);
74
extern char *test_fault2(void);
72
extern char * test_ping_pong(bool quiet);
-
 
73
extern char * test_devmap1(bool quiet);
75
extern char *test_vfs1(void);
74
extern char * test_loop1(bool quiet);
76
extern char *test_ping_pong(void);
75
extern char * test_vfs1(bool quiet);
77
extern char *test_register(void);
76
extern char * test_console1(bool quiet);
78
extern char *test_connect(void);
77
extern char * test_stdio1(bool quiet);
79
extern char *test_loop1(void);
78
extern char * test_stdio2(bool quiet);
80
extern char *test_malloc1(void);
79
 
81
 
80
extern test_t tests[];
82
extern test_t tests[];
81
 
83
 
82
#endif
84
#endif
83
 
85
 
84
/** @}
86
/** @}
85
 */
87
 */
86
 
88