Revision e0fea6b1 tests/libqtest.c

b/tests/libqtest.c
85 85
    return ret;
86 86
}
87 87

  
88
static pid_t qtest_qemu_pid(QTestState *s)
89
{
90
    FILE *f;
91
    char buffer[1024];
92
    pid_t pid = -1;
93

  
94
    f = fopen(s->pid_file, "r");
95
    if (f) {
96
        if (fgets(buffer, sizeof(buffer), f)) {
97
            pid = atoi(buffer);
98
        }
99
    }
100
    fclose(f);
101
    return pid;
102
}
103

  
88 104
QTestState *qtest_init(const char *extra_args)
89 105
{
90 106
    QTestState *s;
......
136 152
    qtest_qmp(s, "");
137 153
    qtest_qmp(s, "{ 'execute': 'qmp_capabilities' }");
138 154

  
155
    if (getenv("QTEST_STOP")) {
156
        kill(qtest_qemu_pid(s), SIGSTOP);
157
    }
158

  
139 159
    return s;
140 160
}
141 161

  
142 162
void qtest_quit(QTestState *s)
143 163
{
144
    FILE *f;
145
    char buffer[1024];
146

  
147
    f = fopen(s->pid_file, "r");
148
    if (f) {
149
        if (fgets(buffer, sizeof(buffer), f)) {
150
            pid_t pid = atoi(buffer);
151
            int status = 0;
152

  
153
            kill(pid, SIGTERM);
154
            waitpid(pid, &status, 0);
155
        }
164
    int status;
156 165

  
157
        fclose(f);
166
    pid_t pid = qtest_qemu_pid(s);
167
    if (pid != -1) {
168
        kill(pid, SIGTERM);
169
        waitpid(pid, &status, 0);
158 170
    }
159 171

  
160 172
    unlink(s->pid_file);

Also available in: Unified diff