1. 03 4月, 2019 29 次提交
  2. 28 3月, 2019 3 次提交
    • M
      qemuxml2argvtest: Drop dependency between testInfoArgName and virQEMUCapsFlags enums · 97b729ef
      Michal Privoznik 提交于
      Introduced in fdf6c89e, this dependency looks weird. It was
      needed because of the way that while() loop was written - it
      fetches next argument in every iteration. Therefore, our only
      option was for ARG_END to have the same value as QEMU_CAPS_LAST.
      This also meant that QEMU_CAPS_* could have been only at the end
      of the __VA_ARGS__.
      
      This commit reworks the while() loop and removes the dependency.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      97b729ef
    • M
      qemu_capabilities; Drop virQEMUCapsSetVAList · 087a74e1
      Michal Privoznik 提交于
      There is one specific caller (testInfoSetArgs() in
      qemuxml2argvtest.c) which expect the va_list argument to change
      after returning from the virQEMUCapsSetVAList() function.
      However, since we are passing plain va_list this is not
      guaranteed. The man page of stdarg(3) says:
      
        If ap is passed to a function that uses va_arg(ap,type), then
        the value of ap is undefined after the return of that function.
      
      (ap is a variable of type va_list)
      
      I've seen this in action in fact: on i686 the qemuxml2argvtest
      fails on the second test case because testInfoSetArgs() sees
      ARG_QEMU_CAPS and calls virQEMUCapsSetVAList to process the
      capabilities (in this case there's just one
      QEMU_CAPS_SECCOMP_BLACKLIST). But since the changes are not
      reflected in the caller, in the next iteration testInfoSetArgs()
      sees the QEMU capability and not ARG_END.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      087a74e1
    • D
      tests: don't abort in fopen(/proc/mounts) · 598641f4
      Daniel P. Berrangé 提交于
      The mock fopen() function will abort if "/proc/mounts" is
      requested with "r" permissions and VIR_CGROUP_MOCK_FILENAME
      env var is not set.
      
      Unfortunately this is triggering by the libselinux library
      constructor when it tries to read /proc/mounts to find out
      if selinuxfs is mounted in an unusual place.
      
      This, however, only affects libselinux in Debian as that
      opens with "r", while in Fedora / RHEL it opens "re" and
      thus luckily never triggered the abort(), instead getting
      an EACCESS.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      598641f4
  3. 26 3月, 2019 3 次提交
  4. 25 3月, 2019 3 次提交
    • E
      snapshot: Add tests of virsh -c test:///default snapshot* · 280a2b41
      Eric Blake 提交于
      Had this been in place earlier, I would have avoided the bugs in
      commit 0baf6945 and 55c2ab3e. Writing the test required me to extend
      the power of virsh - creating enough snapshots to cause fanout
      requires enough input in a single session that adding comments and
      markers makes it easier to check that output is correct. It's still a
      bit odd that with test:///default, reverting to a snapshot changes the
      domain from running to paused (possibly a bug in how the test driver
      copied from the qemu driver) - but the important part is that the test
      is reproducible, and any future tweaks we make to snapshot code have
      less chance of breaking successful command sequences.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Acked-by: NMichal Privoznik <mprivozn@redhat.com>
      280a2b41
    • E
      virsh: Treat any command name starting with # as comment · 4e650259
      Eric Blake 提交于
      As the previous commit mentioned, argv mode (such as when you feed
      virsh via stdin with <<\EOF instead of via a single shell argument)
      didn't permit comments. Do this by treating any command name token
      that starts with # as a comment which silently eats all remaining
      arguments to the next newline or semicolon.
      
      Note that batch mode recognizes unquoted # at the start of any word as
      a command as part of the tokenizer, while this patch only treats # at
      the start of the command word as a comment (any other # remaining by
      the time vshCommandParse() is processing things was already quoted
      during the tokenzier, and as such was probably intended as the actual
      argument to the command word earlier in the line).
      
      Now I can do something like:
      
      $ virsh -c test:///default <<EOF
        # setup
        snapshot-create-as test s1
        snapshot-create-as test s2
        # check
        snapshot-list test --name
      EOF
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Acked-by: NMichal Privoznik <mprivozn@redhat.com>
      4e650259
    • E
      virsh: Parse # comments in batch mode · 834f64ca
      Eric Blake 提交于
      Continuing from what I did in commit 4817dec0, now I want to write a
      sequence that is self-documenting.  So I need comments :)
      
      Now I can do something like:
      
      $ virsh -c test:///default '
        # setup
        snapshot-create-as test s1
        snapshot-create-as test s2
        # check
        snapshot-list test --name
      '
      
      Note that this does NOT accept comments in argv mode, another patch
      will tackle that.
      
      (If I'm not careful, I might turn virsh into a full-fledged 'sh'
      replacement? Here's hoping I don't go that far...)
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Acked-by: NMichal Privoznik <mprivozn@redhat.com>
      834f64ca
  5. 22 3月, 2019 2 次提交