zoukankan      html  css  js  c++  java
  • runtest.sh

      1 #!/bin/sh
      2     
      3 set -eux
      4     
      5  
      6     
      7 # create user account for logging in
      8     
      9 if ! id admin 2>/dev/null; then
     10     
     11     useradd admin -G wheel
     12     
     13     echo admin:foobar | chpasswd
     14     
     15 fi
     16     
     17  
     18     
     19 # mock compose creation calls to backend for testing purposes
     20     
     21 sed -i "s|"/api/v0/compose"|"/api/v0/compose?test=2"|" /usr/share/cockpit/welder/main.js
     22     
     23  
     24     
     25 # disable https in cockpit and use http instead
     26     
     27 printf "[WebService]\nAllowUnencrypted=true\n" > /etc/cockpit/cockpit.conf
     28     
     29  
     30     
     31 # Make cockpit.socket and lorax-composer start
     32     
     33 systemctl start cockpit.socket
     34     
     35 systemctl start lorax-composer
     36     
     37  
     38     
     39 # Make selenium hub and node-firefox or node-chrome ready to use
     40     
     41 TICKS=120
     42     
     43  
     44     
     45 wait_curl(){
     46     
     47     LINK=$1
     48     
     49     GREP_CMD=$2
     50     
     51     FOUND=""
     52     
     53     FULLLINK="http://127.0.0.1:4444$LINK"
     54     
     55     for _ in $(seq $TICKS); do
     56     
     57         if curl -s --connect-timeout 1 "$FULLLINK" | grep "$GREP_CMD" >/dev/null; then
     58     
     59             echo "$FULLLINK ('$GREP_CMD' available on page)" >&2
     60     
     61             FOUND="yes"
     62     
     63             break
     64     
     65         else
     66     
     67             sleep 0.5
     68     
     69         fi
     70     
     71     done
     72     
     73     if [ -z "$FOUND" ]; then
     74     
     75         echo "ERROR: $FULLLINK ('$GREP_CMD' not available)" >&2
     76     
     77         return 1
     78     
     79     fi
     80     
     81 }
     82     
     83  
     84     
     85 # pull selenium container image from docker hub directly
     86     
     87 podman pull -q --tls-verify=false docker.io/selenium/hub:3
     88     
     89 podman pull -q --tls-verify=false "docker.io/selenium/node-$BROWSER:3"
     90     
     91  
     92     
     93 # clear selenium containers
     94     
     95 # sometimes podman rm -f does not work, work around is stop container first then remove it
     96     
     97 podman ps -qa -f 'ancestor=selenium' | xargs --no-run-if-empty podman stop
     98     
     99 podman ps -qa -f 'ancestor=selenium' | xargs --no-run-if-empty podman rm -f
    100     
    101  
    102     
    103 podman run -d --network host --name selenium-hub selenium/hub:3
    104     
    105 wait_curl /grid/console "Grid Console"
    106     
    107 podman run -d --shm-size=512M --name "$BROWSER" --network host -e HUB_HOST=127.0.0.1 -e HUB_PORT=4444 "selenium/node-$BROWSER:3"
    108     
    109 wait_curl /grid/console "browserName: $BROWSER"
    110     
    111  
    112     
    113 # check out current rhel-8.0 branch to get the tests; they are not shipped in the tarball
    114     
    115 if [ -d welder-web ]; then rm -rf welder-web; fi
    116     
    117 git clone -b rhel-8.0 https://github.com/weldr/welder-web.git
    118     
    119  
    120     
    121 # test provision
    122     
    123 cd welder-web/test/end-to-end
    124     
    125 npm install
    126     
    127  
    128     
    129 # wait for lorax-composer initialization before running test
    130     
    131 until curl --unix-socket /run/weldr/api.socket 
    132     
    133     http://localhost:4000/api/status | grep '"db_supported": *true'; do
    134     
    135 sleep 1;
    136     
    137 done;
    138     
    139  
    140     
    141 # run end to end test
    142     
    143 COCKPIT_USERNAME=admin COCKPIT_PASSWORD=foobar npm run test
  • 相关阅读:
    【转】win32内核程序中进程的pid,handle,eprocess之间相互转换的方法
    (ring0)Windows内核根据PID获取进程全路径
    Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)
    指向API的函数指针定义方法
    ListCtrl列表控件设置到指定位置(自滚动,该特性支持虚拟列表)
    【转】VS设置符号表
    物联网三层架构
    五种测试的区别
    CMMI将能力成熟度分为5个级别
    软件的4种维护(更正性、完善性、预防性、适应性)的区别
  • 原文地址:https://www.cnblogs.com/demilyc/p/10490738.html
Copyright © 2011-2022 走看看