[libvirt] [PATCH 3/8] test: Refactor test driver domain object retrieval

Michal Privoznik mprivozn at redhat.com
Fri Jun 19 14:45:07 UTC 2015


On 16.06.2015 19:43, Peter Krempa wrote:
> Add testDomObjFromDomainLocked and reuse it together with
> testDomObjFromDomain to retrieve domain objects in the qemu driver

s/qemu/test/

> instead of open-coding it in every API.
> ---
>  src/test/test_driver.c | 409 +++++++++++--------------------------------------
>  1 file changed, 92 insertions(+), 317 deletions(-)
> 
> diff --git a/src/test/test_driver.c b/src/test/test_driver.c
> index 6613ed7..dc6e49a 100644
> --- a/src/test/test_driver.c
> +++ b/src/test/test_driver.c
> @@ -477,13 +477,12 @@ static int testStoragePoolObjSetDefaults(virStoragePoolObjPtr pool);
>  static int testNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
> 
>  static virDomainObjPtr
> -testDomObjFromDomain(virDomainPtr domain)
> +testDomObjFromDomainLocked(testConnPtr driver,
> +                           virDomainPtr domain)
>  {
>      virDomainObjPtr vm;
> -    testConnPtr driver = domain->conn->privateData;
>      char uuidstr[VIR_UUID_STRING_BUFLEN];
> 
> -    testDriverLock(driver);
>      vm = virDomainObjListFindByUUIDRef(driver->domains, domain->uuid);
>      if (!vm) {
>          virUUIDFormat(domain->uuid, uuidstr);
> @@ -492,10 +491,22 @@ testDomObjFromDomain(virDomainPtr domain)
>                         uuidstr, domain->name);
>      }
> 
> -    testDriverUnlock(driver);
>      return vm;
>  }
> 
> +static virDomainObjPtr
> +testDomObjFromDomain(virDomainPtr domain)
> +{
> +    testConnPtr driver = domain->conn->privateData;
> +    virDomainObjPtr ret;
> +
> +    testDriverLock(driver);
> +    ret = testDomObjFromDomainLocked(driver, domain);
> +    testDriverUnlock(driver);
> +
> +    return ret;
> +}
> +

I don't think this is necessary. As I've said in the previous e-mail -
domainObjList has self-locking APIs. And the driver->domains is
immutable pointer. Or am I missing something?

ACK to the rest though.

Michal




More information about the libvir-list mailing list