~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to tests/hd-geo-test.c

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#include "qemu-common.h"
20
20
#include "libqtest.h"
21
21
 
 
22
#define ARGV_SIZE 256
 
23
 
22
24
static char *create_test_img(int secs)
23
25
{
24
26
    char *template = strdup("/tmp/qtest.XXXXXX");
66
68
    },
67
69
};
68
70
 
69
 
static const char *img_file_name[backend_last];
 
71
static char *img_file_name[backend_last];
70
72
 
71
73
static const CHST *cur_ide[4];
72
74
 
234
236
 */
235
237
static void test_ide_none(void)
236
238
{
237
 
    char *argv[256];
 
239
    char **argv = g_new0(char *, ARGV_SIZE);
 
240
    char *args;
238
241
 
239
 
    setup_common(argv, ARRAY_SIZE(argv));
240
 
    qtest_start(g_strjoinv(" ", argv));
 
242
    setup_common(argv, ARGV_SIZE);
 
243
    args = g_strjoinv(" ", argv);
 
244
    qtest_start(args);
 
245
    g_strfreev(argv);
 
246
    g_free(args);
241
247
    test_cmos();
242
248
    qtest_end();
243
249
}
244
250
 
245
251
static void test_ide_mbr(bool use_device, MBRcontents mbr)
246
252
{
247
 
    char *argv[256];
 
253
    char **argv = g_new0(char *, ARGV_SIZE);
 
254
    char *args;
248
255
    int argc;
249
256
    Backend i;
250
257
    const char *dev;
251
258
 
252
 
    argc = setup_common(argv, ARRAY_SIZE(argv));
 
259
    argc = setup_common(argv, ARGV_SIZE);
253
260
    for (i = 0; i < backend_last; i++) {
254
261
        cur_ide[i] = &hd_chst[i][mbr];
255
262
        dev = use_device ? (is_hd(cur_ide[i]) ? "ide-hd" : "ide-cd") : NULL;
256
 
        argc = setup_ide(argc, argv, ARRAY_SIZE(argv), i, dev, i, mbr, "");
 
263
        argc = setup_ide(argc, argv, ARGV_SIZE, i, dev, i, mbr, "");
257
264
    }
258
 
    qtest_start(g_strjoinv(" ", argv));
 
265
    args = g_strjoinv(" ", argv);
 
266
    qtest_start(args);
 
267
    g_strfreev(argv);
 
268
    g_free(args);
259
269
    test_cmos();
260
270
    qtest_end();
261
271
}
310
320
 
311
321
static void test_ide_drive_user(const char *dev, bool trans)
312
322
{
313
 
    char *argv[256], *opts;
 
323
    char **argv = g_new0(char *, ARGV_SIZE);
 
324
    char *args, *opts;
314
325
    int argc;
315
326
    int secs = img_secs[backend_small];
316
327
    const CHST expected_chst = { secs / (4 * 32) , 4, 32, trans };
317
328
 
318
 
    argc = setup_common(argv, ARRAY_SIZE(argv));
 
329
    argc = setup_common(argv, ARGV_SIZE);
319
330
    opts = g_strdup_printf("%s,%s%scyls=%d,heads=%d,secs=%d",
320
331
                           dev ?: "",
321
332
                           trans && dev ? "bios-chs-" : "",
323
334
                           expected_chst.cyls, expected_chst.heads,
324
335
                           expected_chst.secs);
325
336
    cur_ide[0] = &expected_chst;
326
 
    argc = setup_ide(argc, argv, ARRAY_SIZE(argv),
 
337
    argc = setup_ide(argc, argv, ARGV_SIZE,
327
338
                     0, dev ? opts : NULL, backend_small, mbr_chs,
328
339
                     dev ? "" : opts);
329
340
    g_free(opts);
330
 
    qtest_start(g_strjoinv(" ", argv));
 
341
    args = g_strjoinv(" ", argv);
 
342
    qtest_start(args);
 
343
    g_strfreev(argv);
 
344
    g_free(args);
331
345
    test_cmos();
332
346
    qtest_end();
333
347
}
369
383
 */
370
384
static void test_ide_drive_cd_0(void)
371
385
{
372
 
    char *argv[256];
 
386
    char **argv = g_new0(char *, ARGV_SIZE);
 
387
    char *args;
373
388
    int argc, ide_idx;
374
389
    Backend i;
375
390
 
376
 
    argc = setup_common(argv, ARRAY_SIZE(argv));
 
391
    argc = setup_common(argv, ARGV_SIZE);
377
392
    for (i = 0; i <= backend_empty; i++) {
378
393
        ide_idx = backend_empty - i;
379
394
        cur_ide[ide_idx] = &hd_chst[i][mbr_blank];
380
 
        argc = setup_ide(argc, argv, ARRAY_SIZE(argv),
 
395
        argc = setup_ide(argc, argv, ARGV_SIZE,
381
396
                         ide_idx, NULL, i, mbr_blank, "");
382
397
    }
383
 
    qtest_start(g_strjoinv(" ", argv));
 
398
    args = g_strjoinv(" ", argv);
 
399
    qtest_start(args);
 
400
    g_strfreev(argv);
 
401
    g_free(args);
384
402
    test_cmos();
385
403
    qtest_end();
386
404
}
418
436
    for (i = 0; i < backend_last; i++) {
419
437
        if (img_file_name[i]) {
420
438
            unlink(img_file_name[i]);
 
439
            free(img_file_name[i]);
421
440
        }
422
441
    }
423
442