github.com/vmware/govmomi@v0.43.0/govc/emacs/test/govc-test.el (about)

     1  (defconst testsuite-dir
     2    (if load-file-name
     3        (file-name-directory load-file-name)
     4      ;; Fall back to default directory (in case of M-x eval-buffer)
     5      default-directory)
     6    "Directory of the test suite.")
     7  
     8  (defconst govc-test-helper-path
     9    (concat (expand-file-name (concat testsuite-dir "/../../test/test_helper.bash"))))
    10  
    11  (load (expand-file-name "../govc" testsuite-dir) nil :no-message)
    12  
    13  (ert-deftest test-govc-url-parse ()
    14    (dolist (u '("root:vagrant@localhost:18443"
    15                 "Administrator@vsphere.local:vagrant@localhost"
    16                 "https://root:vagrant@localhost:18443/sdk"
    17                 "https://Administrator@vsphere.local:vagrant@localhost/sdk"))
    18      (should (equal u (url-recreate-url (govc-url-parse u))))))
    19  
    20  (ert-deftest test-govc-session-set-url ()
    21    (should (equal govc-session-insecure nil))
    22    (should (equal govc-session-datacenter nil))
    23    (with-temp-buffer
    24      (govc-session-set-url "vc.example.com?insecure=true&datacenter=foo&ignored=true")
    25      (should (equal govc-session-insecure "true"))
    26      (should (equal govc-session-datacenter "foo"))
    27      (should (equal govc-session-datastore nil))))
    28  
    29  (ert-deftest test-govc-copy-environment ()
    30    (let ((process-environment)
    31          (govc-session-url "vc.example.com")
    32          (govc-session-insecure "false")
    33          (govc-session-datacenter "dc1")
    34          (govc-session-datastore "ds1")
    35          (govc-session-network "net1"))
    36      (govc-export-environment '-)
    37      (dolist (e govc-environment-map)
    38        (should (equal nil (getenv (car e)))))
    39      (govc-export-environment (universal-argument))
    40      (dolist (e govc-environment-map)
    41        (should (not (equal nil (getenv (car e))))))))
    42  
    43  (defun govc-test-env ()
    44    (let ((url (getenv "GOVC_TEST_URL")))
    45      (unless url
    46        (ert-skip "env GOVC_TEST_URL not set"))
    47      (setq govc-session-url url
    48            govc-session-insecure "true")))
    49  
    50  (defun govc-test-helper (arg)
    51    (shell-command-to-string (format "bash -c \"source %s; %s\"" govc-test-helper-path arg)))
    52  
    53  (defun govc-test-new-vm ()
    54    (s-trim-right (govc-test-helper "new_empty_vm")))
    55  
    56  (defun govc-test-new-id ()
    57    (s-trim-right (govc-test-helper "new_id")))
    58  
    59  (defun govc-test-teardown ()
    60    (ignore-errors
    61      (govc-test-helper "teardown")))
    62  
    63  (ert-deftest test-govc-vm-info ()
    64    (govc-test-env)
    65    (unwind-protect
    66        (let ((id (govc-test-new-vm)))
    67          (govc-json-info "vm.info" (list id))
    68          (with-current-buffer "*govc-json*"
    69            (goto-char (point-min))
    70            (let ((data (json-read)))
    71              (should (= (length data) 1))
    72              (should (cdr (assq 'VirtualMachines data)))))
    73  
    74          (govc-json-info "vm.info" (list "ENOENT"))
    75          (with-current-buffer "*govc-json*"
    76            (goto-char (point-min))
    77            (let ((data (json-read)))
    78              (should (= (length data) 1))
    79              (should (not (cdr (assq 'VirtualMachines data))))))
    80  
    81          (let ((govc-args (list id))
    82                (len1)
    83                (len2))
    84            (setq len1 (length (govc-vm-extra-config)))
    85            (should (>= len1 1))
    86            (govc "vm.change" "-vm" id
    87                  "-e" "govc-test-one=1"
    88                  "-e" "govc-test-two:2.2=2"
    89                  ;; test that we don't choke on \n
    90                  "-e" "foo=bar
    91  baz")
    92            (setq len2 (length (govc-vm-extra-config)))
    93  
    94            (should (= (- len2 len1) 3)))
    95  
    96          (let ((govc-filter "*"))
    97            (should (>= (length (govc-vm-info)) 1)))
    98  
    99          (let ((govc-filter "ENOENT"))
   100            (should (= (length (govc-vm-info)) 0)))
   101  
   102          (govc-vm-screen id))
   103      (govc-test-teardown)))
   104  
   105  (ert-deftest test-govc-datastore-ls-entries ()
   106    (govc-test-env)
   107    (unwind-protect
   108        (let ((id (govc-test-new-id)))
   109          (should (>= (length (govc-datastore-ls-entries)) 1))
   110  
   111          (let ((govc-filter (concat id "/")))
   112            (should-error (govc-datastore-ls-entries))
   113            (govc "datastore.mkdir" id)
   114            (should (= (length (govc-datastore-ls-entries)) 0))
   115            (dotimes (i 3)
   116              (govc "datastore.mkdir" (format "%s/dir %d" id i)))
   117            (let ((entries (govc-datastore-ls-entries)))
   118              (should (= (length entries) 3))
   119              (should (s-starts-with? (concat id "/dir ") (caar entries))))))
   120      (govc-test-teardown)))
   121  
   122  (ert-deftest test-govc-pool-ls ()
   123    (govc-test-env)
   124    (unwind-protect
   125        (let* ((pools (govc-ls-pool))
   126               (num (length pools))
   127               (path (concat (car pools) "/" (govc-test-new-id))))
   128          (should (>= num 1))
   129          (message "%d existing pools [%S]" num pools)
   130          (govc "pool.create" path)
   131          (setq pools (govc-ls-pool))
   132          (govc-pool-destroy path)
   133          (should (= (- (length pools) num) 1)))
   134      (govc-test-teardown)))
   135  
   136  (ert-deftest test-govc-about ()
   137    (govc-test-env)
   138    (govc "about"))