summaryrefslogtreecommitdiff
path: root/scripts/Controller.ice
blob: 24ee0b97e29edd68bda46901d5fbc633ea0a45ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// **********************************************************************
//
// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

module Test
{

module Common
{

exception ServerFailedException
{
    string reason;
};

interface Server
{
    void waitTestSuccess();
    void waitForServer() throws ServerFailedException;
    void terminate();
};

class Config
{
    optional(1) string protocol;
    optional(2) bool mx;
    optional(3) bool serialize;
    optional(4) bool compress;
    optional(5) bool ipv6;
};

sequence<bool> BoolSeq;
sequence<string> StringSeq;

class OptionOverrides
{
    optional(1) StringSeq protocol;
    optional(2) BoolSeq mx;
    optional(3) BoolSeq serialize;
    optional(4) BoolSeq compress;
    optional(5) BoolSeq ipv6;
};

exception TestCaseNotExistException
{
    string reason;
};

exception TestCaseFailedException
{
    string output;
};

interface TestCase
{
    string startServerSide(Config config)
        throws TestCaseFailedException;

    string stopServerSide(bool success)
        throws TestCaseFailedException;

    string runClientSide(string host, Config config)
        throws TestCaseFailedException;

    void destroy();
};

interface Controller
{
    Server* runServer(string lang, string testsuite, string protocol, string host, bool winrt, string testcase,
                      StringSeq options);

    TestCase* runTestCase(string lang, string testsuite, string testcase)
        throws TestCaseNotExistException;

    OptionOverrides getOptionOverrides();
};

};

};