~ubuntu-branches/ubuntu/trusty/virtualbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/testcase/tstRTDvm.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-07 16:38:36 UTC
  • mfrom: (1.1.13) (3.1.20 experimental)
  • Revision ID: package-import@ubuntu.com-20130307163836-p93jpbgx39tp3gb4
Tags: 4.2.8-dfsg-0ubuntu1
* New upstream release. (Closes: #691148)
  - Fixes compatibility with kernel 3.8. (Closes: #700823; LP: #1101867)
* Switch to my @debian.org email address.
* Move package to contrib as virtualbox 4.2 needs a non-free compiler to
  build the BIOS.
* Build-depend on libdevmapper-dev.
* Refresh patches.
  - Drop 36-fix-ftbfs-xserver-112.patch, cve-2012-3221.patch,
    CVE-2013-0420.patch 37-kcompat-3.6.patch and 38-kcompat-3.7.patch.
* Drop all virtualbox-ose transitional packages.
* Drop the virtualbox-fuse package as vdfuse fails to build with
  virtualbox 4.2.
* Update install files and VBox.sh.
* Bump required kbuild version to 0.1.9998svn2577.
* Fix path to VBoxCreateUSBNode.sh in virtualbox.postinst. (Closes: #700479)
* Add an init script to virtuabox-guest-x11 which loads the vboxvideo
  kernel module. The X Server 1.13 doesn't load it anymore. (Closes: #686994)
* Update man pages. (Closes: #680053)
* Add 36-python-multiarch.patch from Rico Tzschichholz to fix detection of
  python in multiarch paths using pkg-config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 */
5
5
 
6
6
/*
7
 
 * Copyright (C) 2009 Oracle Corporation
 
7
 * Copyright (C) 2009-2012 Oracle Corporation
8
8
 *
9
9
 * This file is part of VirtualBox Open Source Edition (OSE), as
10
10
 * available from http://www.virtualbox.org. This file is free software;
28
28
/*******************************************************************************
29
29
*   Header Files                                                               *
30
30
*******************************************************************************/
31
 
#include <iprt/initterm.h>
 
31
#include <iprt/dvm.h>
 
32
 
32
33
#include <iprt/err.h>
33
34
#include <iprt/test.h>
34
 
#include <iprt/dvm.h>
35
35
#include <iprt/file.h>
36
36
#include <iprt/string.h>
37
37
 
 
38
 
 
39
/*******************************************************************************
 
40
*   Structures and Typedefs                                                    *
 
41
*******************************************************************************/
38
42
/**
39
43
 * Disk structure.
40
44
 */
52
56
    };
53
57
} TSTRTDVMDISK, *PTSTRTDVMDISK;
54
58
 
 
59
 
 
60
 
55
61
static int dvmDiskRead(void *pvUser, uint64_t off, void *pvBuf, size_t cbRead)
56
62
{
57
63
    PTSTRTDVMDISK pDisk = (PTSTRTDVMDISK)pvUser;
58
64
 
59
65
    if (pDisk->fUseImage)
60
66
        return RTFileReadAt(pDisk->hImage, off, pvBuf, cbRead, NULL);
61
 
    else
62
 
        return RTDvmVolumeRead(pDisk->hVol, off, pvBuf, cbRead);
 
67
    return RTDvmVolumeRead(pDisk->hVol, off, pvBuf, cbRead);
63
68
}
64
69
 
65
70
static int dvmDiskWrite(void *pvUser, uint64_t off, const void *pvBuf, size_t cbWrite)
68
73
 
69
74
    if (pDisk->fUseImage)
70
75
        return RTFileWriteAt(pDisk->hImage, off, pvBuf, cbWrite, NULL);
71
 
    else
72
 
        return RTDvmVolumeWrite(pDisk->hVol, off, pvBuf, cbWrite);
 
76
    return RTDvmVolumeWrite(pDisk->hVol, off, pvBuf, cbWrite);
73
77
}
74
78
 
75
79
static int tstRTDvmVolume(RTTEST hTest, PTSTRTDVMDISK pDisk, uint64_t cb, unsigned cNesting)
77
81
    char szPrefix[100];
78
82
    int rc = VINF_SUCCESS;
79
83
 
80
 
    memset(szPrefix, 0, sizeof(szPrefix));
 
84
    RT_ZERO(szPrefix);
81
85
 
82
86
    if (cNesting < sizeof(szPrefix) - 1)
83
87
    {
87
91
 
88
92
    RTTestSubF(hTest, "Create DVM");
89
93
    RTDVM hVolMgr;
90
 
    rc = RTDvmCreate(&hVolMgr, dvmDiskRead, dvmDiskWrite, cb, 512, pDisk);
 
94
    rc = RTDvmCreate(&hVolMgr, dvmDiskRead, dvmDiskWrite, cb, 512, 0, pDisk);
91
95
    if (RT_FAILURE(rc))
92
96
    {
93
97
        RTTestIFailed("RTDvmCreate -> %Rrc", rc);
102
106
        RTTestIFailed("RTDvmOpen -> %Rrc", rc);
103
107
        return RTTestSummaryAndDestroy(hTest);
104
108
    }
105
 
    else if (rc == VERR_NOT_SUPPORTED)
 
109
    if (rc == VERR_NOT_SUPPORTED)
106
110
        return VINF_SUCCESS;
107
111
 
108
112
    RTTestIPrintf(RTTESTLVL_ALWAYS, "%s Successfully opened map with format: %s.\n", szPrefix, RTDvmMapGetFormat(hVolMgr));