github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/cli/interactive_tests/test_demo.tcl (about) 1 #! /usr/bin/env expect -f 2 3 source [file join [file dirname $argv0] common.tcl] 4 5 start_test "Check that demo insecure says hello properly" 6 spawn $argv demo --insecure=true 7 # Be polite. 8 eexpect "Welcome" 9 # Warn the user that they won't get persistence. 10 eexpect "your changes to data stored in the demo session will not be saved!" 11 # Inform the necessary URL. 12 eexpect "(console)" 13 eexpect "http:" 14 # Ensure same messages as cockroach sql. 15 eexpect "Server version" 16 eexpect "Cluster ID" 17 eexpect "brief introduction" 18 # Ensure user is root. 19 eexpect root@ 20 # Ensure db is movr. 21 eexpect "movr>" 22 interrupt 23 eexpect eof 24 end_test 25 26 start_test "Check that demo insecure says hello properly" 27 28 # With env var. 29 set ::env(COCKROACH_INSECURE) "true" 30 spawn $argv demo --empty 31 eexpect "Welcome" 32 eexpect "defaultdb>" 33 34 # Show the URLs. 35 send "\\demo ls\r" 36 eexpect "(console)" 37 eexpect "http://" 38 eexpect "(sql)" 39 eexpect "root:admin@" 40 eexpect "(sql/tcp)" 41 eexpect "root@" 42 eexpect "sslmode=disable" 43 eexpect "defaultdb>" 44 45 interrupt 46 eexpect eof 47 48 # With command-line override. 49 set ::env(COCKROACH_INSECURE) "false" 50 spawn $argv demo --insecure=true --empty 51 eexpect "Welcome" 52 eexpect "defaultdb>" 53 54 # Show the URLs. 55 send "\\demo ls\r" 56 eexpect "(console)" 57 eexpect "http://" 58 eexpect "(sql)" 59 eexpect "root:admin@" 60 eexpect "(sql/tcp)" 61 eexpect "root@" 62 eexpect "sslmode=disable" 63 eexpect "defaultdb>" 64 65 interrupt 66 eexpect eof 67 68 end_test 69 70 start_test "Check that demo secure says hello properly" 71 72 73 # With env var. 74 set ::env(COCKROACH_INSECURE) "false" 75 spawn $argv demo --empty 76 eexpect "Welcome" 77 eexpect "The user \"root\" with password \"admin\" has been created." 78 eexpect "defaultdb>" 79 80 # Show the URLs. 81 send "\\demo ls\r" 82 eexpect "(console)" 83 eexpect "http://" 84 eexpect "(sql)" 85 eexpect "root:admin@" 86 eexpect "(sql/tcp)" 87 eexpect "root:admin@" 88 eexpect "sslmode=require" 89 eexpect "defaultdb>" 90 91 interrupt 92 eexpect eof 93 94 # With command-line override. 95 set ::env(COCKROACH_INSECURE) "true" 96 spawn $argv demo --insecure=false --empty 97 eexpect "Welcome" 98 eexpect "The user \"root\" with password \"admin\" has been created." 99 eexpect "defaultdb>" 100 101 # Show the URLs. 102 send "\\demo ls\r" 103 eexpect "(console)" 104 eexpect "http://" 105 eexpect "(sql)" 106 eexpect "root:admin@" 107 eexpect "(sql/tcp)" 108 eexpect "root:admin@" 109 eexpect "sslmode=require" 110 eexpect "defaultdb>" 111 112 interrupt 113 eexpect eof 114 115 end_test 116 117 # Test that demo displays connection URLs for nodes in the cluster. 118 start_test "Check that node URLs are displayed" 119 spawn $argv demo --insecure --empty 120 # Check that we see our message. 121 eexpect "Connection parameters" 122 eexpect "(sql)" 123 eexpect "(sql/tcp)" 124 expect root@ 125 send_eof 126 eexpect eof 127 128 # Start the test again with a multi node cluster. 129 spawn $argv demo --insecure --nodes 3 --empty 130 131 # Check that we get a message for each node. 132 eexpect "Connection parameters" 133 eexpect "(sql)" 134 eexpect "(sql/tcp)" 135 eexpect "defaultdb>" 136 137 send "\\demo ls\r" 138 eexpect "node 1" 139 eexpect "(sql)" 140 eexpect "(sql/tcp)" 141 eexpect "node 2" 142 eexpect "(sql)" 143 eexpect "(sql/tcp)" 144 eexpect "node 3" 145 eexpect "(sql)" 146 eexpect "(sql/tcp)" 147 eexpect "defaultdb>" 148 149 send_eof 150 eexpect eof 151 152 spawn $argv demo --insecure=false --empty 153 # Expect that security related tags are part of the connection URL. 154 eexpect "(sql/tcp)" 155 eexpect "sslmode=require" 156 eexpect "defaultdb>" 157 158 send_eof 159 eexpect eof 160 161 end_test