Android14 CTS-R6和GTS-12-R2不能同时测试的解决方法

背景
Android14 CTS r6和GTS 12-r1之后,tf-console默认会带起OLC Server,看起来olc server可能是想适配ATS(android-test-station),一种网页版可视化、可配置的跑XTS的方式。这种网页版ATS对测试人员是比较友好的,网页上简单配置下就能把CTS跑起来,但是目前觉得还是不太方便。对于经常跑CTS fulltest的开发测试人员来说,终端上敲个命令似乎更方便。

遇到的问题

  • 上面提到olc server有个问题,我们用新版tool,tf-console敲了命令,测试有时会跑不起来,或是retry也有机会遇到问题。
    GTS测试等了很久或是retry失败
  • 同一台linux server跑CTS+GTS会被排序,不能同时跑。为什么这样?因为新版tool:cts和gts会各自起自己的ats console,同时带起olc server,比如cts先起ats console和olc server,gts再起ats console,然后会去connect existing olc server,如果有olc server存在,就用存在的olc server。cts和gts起的ats console相当于olc client,在cts和gts的ats console敲的command会被传到olc server里的queue buffer,这样command就会排序,导致gts和cts不能同时跑(gts-gts,cts-cts也不能)。那以前旧版本的tool没这个问题。但是我们一台Host server通常是多种测试一起跑,所以这种不能多种测试一起跑的问题,要相办法解决。
    Using existing olc server

寻找解决方法

  • 借助docker来隔离测试环境
    参考了dockerfile构建CTS环境,编译搭建了2个docker image,一个for CTS,一个for GTS,但最后还是会connect existing olc server,就另寻其他方法了。

  • 查看android-gts/tools/gts-tradefed(cts: android-cts/tools/cts-tradefed),发现问题USE_ATS=true,原来如此:

USE_ATS=${USE_ATS:-"true"}if [ "$USE_ATS" == "true" ]; thenATS_CONSOLE_JAR=${GTS_ROOT}/android-gts/tools/ats_console_deploy.jarATS_OLC_SERVER_JAR=${GTS_ROOT}/android-gts/tools/ats_olc_server_local_mode_deploy.jarcheckFile ${ATS_CONSOLE_JAR}checkFile ${ATS_OLC_SERVER_JAR}FASTBOOT_FLAGS=" \--enable_fastboot_in_android_real_device=true \--fastboot='$(type -P fastboot 2>/dev/null)' \"if ! type -P fastboot &> /dev/null; thenFASTBOOT_FLAGS="--enable_fastboot_in_android_real_device=false"fi;DEVICE_INFRA_SERVICE_FLAGS=" \--aapt='$(type -P aapt2 2>/dev/null)' \--adb='$(type -P adb 2>/dev/null)' \--ats_console_olc_server_path='${ATS_OLC_SERVER_JAR}' \--public_dir=/tmp \--simplified_log_format=true \--tmp_dir_root=/tmp \${FASTBOOT_FLAGS} \"LANG=en_US.UTF-8 TEST_TMPDIR=/tmp ${JAVA_BINARY} --add-opens=java.base/java.lang=ALL-UNNAMED -Xmx4g -DXTS_ROOT=${GTS_ROOT} -DXTS_TYPE=gts -DDEVICE_INFRA_SERVICE_FLAGS="${DEVICE_INFRA_SERVICE_FLAGS}" -jar ${ATS_CONSOLE_JAR} "$@"
else${JAVA_BINARY} $RDBG_FLAG -Xmx4g -cp ${JAR_PATH} -DGTS_ROOT=${GTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
fi

因为USE_ATS=true,导致起的是ats console并去起olc server,和之前旧tool不同。到此解决办法就有了:在.bashrc里加入一句就可以了,继续用之前旧tool起的console。

export USE_ATS=false 

最后
G看起来后续是要推这个ATS的东西,其中ats console和olc server类似C/S,但现阶段似乎不稳定,暂时就先关掉ATS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/891906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的tcpdump抓包命令详解:抓取TCP和UDP数据包并按小时输出文件

Linux中的tcpdump抓包命令详解:抓取TCP和UDP数据包并按小时输出文件 一、tcpdump简介二、安装tcpdump三、抓取TCP和UDP数据包四、按小时输出文件五、tcpdump命令的常用选项和表达式六、总结在Linux系统中,tcpdump是一款强大的网络抓包工具,它基于libpcap库开发,可以捕获网络…

k8s基础(4)—Kubernetes-Service

Service概述 抽象层 ‌k8s的Service是一种抽象层,用于为一组具有相同功能的Pod提供一个统一的入口地址,并通过负载均衡将网络流量分发到这些Pod上。‌ Service解决了Pod动态变化的问题,例如Pod的IP地址和端口可能会发生变化,通过…

C++中批量线程启动容器中的对象函数

使用容器管理多个类对象&#xff0c;通过函数启动容器中所有类对象的函数。 #include <iostream> #include <thread> #include <vector> #include <chrono> #include <memory>class Apple { public:Apple(int num):workspaceNum(num) {}void st…

国内Ubuntu环境Docker部署CosyVoice

国内Ubuntu环境Docker部署CosyVoice 本文旨在记录在 国内 CosyVoice项目在 Ubuntu 环境下如何使用 dockermin-conda进行一键部署。 源项目地址&#xff1a; https://github.com/FunAudioLLM/CosyVoice 如果想要使用 dockerpython 进行部署&#xff0c;可以参考我另一篇博客中的…

基于 gitlab-runner 实现调度GPU的资源

本篇目录 1. 客户需求2. 需求调研3. 实践3.1 方案一&#xff1a;环境变量的方式3.2 方案二&#xff1a;k8s 自身的spec注入机制 4. 效果 该实践来自于客户的一个真实需求 1. 客户需求 客户的某些流水线需要使用GPU资源&#xff0c;但是对于GPU服务器而言&#xff0c;会有多张G…

人脑神经元的连接方式与视觉提取功能对深度学习的启发

1. 引言 人脑神经网络复杂的连接方式和高效的信息处理能力&#xff0c;为人工智能算法的设计提供了重要灵感。研究人脑神经元的连接特点&#xff0c;尤其是其反馈与递归结构&#xff0c;不仅能帮助理解大脑如何感知与认知&#xff0c;还能揭示深度学习模型&#xff08;如ResNe…

计算机网络 —— 网络编程(TCP)

计算机网络 —— 网络编程&#xff08;TCP&#xff09; TCP和UDP的区别TCP (Transmission Control Protocol)UDP (User Datagram Protocol) 前期准备listen &#xff08;服务端&#xff09;函数原型返回值使用示例注意事项 accpect &#xff08;服务端&#xff09;函数原型返回…

模型 九屏幕分析法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。九屏幕法&#xff1a;全方位分析问题的系统工具。 1 九屏幕分析法的应用 1.1 新产品研发的市场分析 一家科技公司计划开发一款新型智能手机&#xff0c;为了全面评估市场潜力和风险&#xff0c;他们…

Unity2D初级背包设计中篇 MVC分层撰写(万字详解)

本人能力有限&#xff0c;如有不足还请斧正&#xff0c;理论分析链接如下&#xff1a; Unity2D初级背包设计前篇 理论分析-CSDN博客 目录 1.M层&#xff1a;数据存储 物品 仓库容器 加载方式 2.M层&#xff1a;逻辑撰写 InventoryManager 仓库的管理 SlotData 物品的增…

深入理解 Linux 管道:创建与应用详解(匿名管道进程池)

在现代操作系统中&#xff0c;进程间通信&#xff08;IPC&#xff09;是实现多任务、多进程协作的关键技术之一。Linux 提供了多种 IPC 机制&#xff0c;本博客将帮助您详细的理解进程间通信的原理 首先&#xff0c;在学习管道之前&#xff0c;我们先理解一下管道的存在是为了什…

SWM221系列芯片之电机应用及控制

经过对SWM221系列的强大性能及外设资源&#xff0c;TFTLCD彩屏显示及控制进行了整体介绍后&#xff0c;新迎来我们的电控篇---SWM221系列芯片之电机应用及控制。在微控制器市场面临性能、集成度与成本挑战的当下&#xff0c;SWM221系列芯片以其卓越性能与创新设计&#xff0c;受…

qt qss文件的使用

qt样式的修改方式 一 通过ui界面的改变样式表来直接修改显示效果。 不推荐&#xff0c;其他人不好修改&#xff0c;不够直观&#xff0c;不易维护。 二 通过setStyleSheet接口修改。 一般&#xff0c;界面很少的时候可以使用。一旦界面多起来&#xff0c;代码部分就显得杂乱…

Centos文件已删除空间未释放

原创作者&#xff1a;运维工程师 谢晋 Centos文件已删除空间未释放 释放已删除空间 释放已删除空间 很多时候&#xff0c;你会发现&#xff0c;明明已经删除了文件或日志&#xff0c;但是系统空间就是未缩减&#xff0c;很明显&#xff0c;有空间被已删除文件占用&#xff…

reactor中的并发

1. reactor中的并发有两种方式 1.1 flatmap&#xff0c;底层是多线程并发处理。在reactor的演讲中&#xff0c;flatmap对于io类型的并发效果较好. flamap有两个参数: int concurrency, int prefetch。分别代表并发的线程数和缓存大小 注意凡是参数中有prefetch的&#xff0c;都…

深入 Redis:高级特性与最佳实践

引言 在分布式系统和高并发环境中&#xff0c;Redis 已经成为了一个不可或缺的工具。作为一个内存数据结构存储系统&#xff0c;Redis 不仅支持丰富的数据类型&#xff0c;还提供了高效的操作和极低的延迟&#xff0c;这使得它广泛应用于缓存、消息队列、计数器、排行榜等场景…

如何在 JavaScript 中实现日期格式化?

在 JavaScript 中&#xff0c;日期格式化的常见方法是通过使用内置的 Date 对象来进行处理。JavaScript 本身并没有直接提供一个强大的日期格式化函数&#xff0c;因此通常会使用一些流行的第三方库&#xff0c;比如 date-fns 或 moment.js&#xff0c;但如果我们不依赖外部库&…

Trimble天宝X9三维扫描仪为建筑外墙检测提供了全新的解决方案【沪敖3D】

随着城市化进程的快速推进&#xff0c;城市高层建筑不断增多&#xff0c;对建筑质量的要求也在不断提高。建筑外墙检测&#xff0c;如平整度和垂直度检测&#xff0c;是衡量建筑质量的重要指标之一。传统人工检测方法不仅操作繁琐、效率低下&#xff0c;还难以全面反映墙体的真…

浅谈棋牌游戏开发流程二:后端技术选型与基础环境搭建

一、前言&#xff1a;客户端只是台前&#xff0c;后端才是幕后“指挥中心” 在上一篇“客户端技术”中&#xff0c;我们聊到玩家看到的一切动作、动画、界面逻辑&#xff0c;都靠客户端去渲染和交互。但若没有后端的支撑&#xff0c;玩家点了“出牌”可能就像一拳打在空气里—…

机器人手眼标定

机器人手眼标定 一、机器人手眼标定1. 眼在手上标定基本原理2. 眼在手外标定基本原理 二、眼在手外标定实验三、标定精度分析 一、机器人手眼标定 要实现由图像目标点到实际物体上抓取点之间的坐标转换&#xff0c;就必须拥有准确的相机内外参信息。其中内参是相机内部的基本参…

unity中的UI系统---GUI

一、工作原理和主要作用 1.GUI是什么&#xff1f; 即即时模式游戏用户交互界面&#xff08;IMGUI&#xff09;&#xff0c;在unity中一般简称为GUI&#xff0c;它是一个代码驱动的UI系统。 2.GUI的主要作用 2.1作为程序员的调试工具&#xff0c;创建游戏内调测试工具 2.2为…