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"))