target-test.yml 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568
  1. .target_test_template:
  2. image: $TARGET_TEST_ENV_IMAGE
  3. extends:
  4. - .before_script:fetch:target_test
  5. stage: target_test
  6. timeout: 1 hour
  7. dependencies: []
  8. cache:
  9. # Usually do not need submodule-cache in target_test
  10. - key: pip-cache
  11. paths:
  12. - .cache/pip
  13. policy: pull
  14. after_script:
  15. - python tools/ci/artifacts_handler.py upload --type logs junit_reports
  16. .pytest_template:
  17. extends:
  18. - .target_test_template
  19. artifacts:
  20. when: always
  21. paths:
  22. - XUNIT_RESULT.xml
  23. - pytest_embedded_log/
  24. reports:
  25. junit: XUNIT_RESULT.xml
  26. expire_in: 1 week
  27. script:
  28. - retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
  29. # get runner env config file
  30. - retry_failed git clone $TEST_ENV_CONFIG_REPO
  31. - python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
  32. # using runner tags as markers to filter the test cases
  33. # Runner tags are comma separated, replace the comma with " and " for markers
  34. - job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
  35. - markers=$(echo $job_tags | sed -e "s/,/ and /g")
  36. - if [ -n "$BUILD_JOB_NAME" ]; then
  37. job_name=$BUILD_JOB_NAME;
  38. else
  39. job_name=${BUILD_JOB_PREFIX}$(python tools/ci/ci_get_mr_info.py target_in_tags $job_tags);
  40. fi
  41. - run_cmd python tools/ci/artifacts_handler.py download --job-name "$job_name" --type build_dir_without_map_and_elf_files
  42. - if [ -n "$REQUIRES_ELF_FILES" ]; then
  43. run_cmd python tools/ci/artifacts_handler.py download --job-name "$job_name" --type map_and_elf_files;
  44. fi
  45. - run_cmd pytest $TEST_DIR
  46. -m \"${markers}\"
  47. --junitxml=XUNIT_RESULT.xml
  48. --ignore-result-files known_failure_cases/known_failure_cases.txt
  49. --parallel-count ${CI_NODE_TOTAL:-1}
  50. --parallel-index ${CI_NODE_INDEX:-1}
  51. ${PYTEST_EXTRA_FLAGS}
  52. --app-info-filepattern \"list_job_*.txt\"
  53. .pytest_examples_dir_template:
  54. extends: .pytest_template
  55. variables:
  56. TEST_DIR: examples
  57. BUILD_JOB_PREFIX: build_pytest_examples_
  58. .pytest_examples_dir_jtag_template:
  59. extends: .pytest_examples_dir_template
  60. needs:
  61. - job: build_pytest_examples_jtag
  62. artifacts: false
  63. variables:
  64. BUILD_JOB_NAME: build_pytest_examples_jtag
  65. REQUIRES_ELF_FILES: "1"
  66. PYTEST_EXTRA_FLAGS: "--log-cli-level DEBUG"
  67. pytest_examples_esp32_generic:
  68. extends:
  69. - .pytest_examples_dir_template
  70. - .rules:test:example_test-esp32
  71. needs:
  72. - job: build_pytest_examples_esp32
  73. artifacts: false
  74. tags: [ esp32, generic ]
  75. parallel: 3
  76. pytest_examples_esp32_esp32eco3:
  77. extends:
  78. - .pytest_examples_dir_template
  79. - .rules:test:example_test-esp32
  80. needs:
  81. - job: build_pytest_examples_esp32
  82. artifacts: false
  83. tags: [ esp32, esp32eco3 ]
  84. pytest_examples_esp32_ir_transceiver:
  85. extends:
  86. - .pytest_examples_dir_template
  87. - .rules:test:example_test-esp32
  88. needs:
  89. - job: build_pytest_examples_esp32
  90. artifacts: false
  91. tags: [ esp32, ir_transceiver ]
  92. pytest_examples_esp32_twai_transceiver:
  93. extends:
  94. - .pytest_examples_dir_template
  95. - .rules:test:example_test-esp32
  96. needs:
  97. - job: build_pytest_examples_esp32
  98. artifacts: false
  99. tags: [ esp32, twai_transceiver ]
  100. pytest_examples_esp32_twai_network:
  101. extends:
  102. - .pytest_examples_dir_template
  103. - .rules:test:example_test-esp32
  104. needs:
  105. - job: build_pytest_examples_esp32
  106. artifacts: false
  107. tags: [ esp32, twai_network ]
  108. pytest_examples_esp32_jtag:
  109. extends:
  110. - .pytest_examples_dir_jtag_template
  111. - .rules:test:example_test-esp32
  112. tags: [ esp32, jtag ]
  113. pytest_examples_esp32_ccs811:
  114. extends:
  115. - .pytest_examples_dir_template
  116. - .rules:test:example_test-esp32
  117. needs:
  118. - job: build_pytest_examples_esp32
  119. artifacts: false
  120. tags: [ esp32, ccs811 ]
  121. pytest_examples_esp32_sdio:
  122. extends:
  123. - .pytest_examples_dir_template
  124. - .rules:test:example_test-esp32-sdio
  125. needs:
  126. - job: build_pytest_examples_esp32
  127. artifacts: false
  128. tags: [ esp32, sdio_master_slave ]
  129. pytest_examples_esp32s2_generic:
  130. extends:
  131. - .pytest_examples_dir_template
  132. - .rules:test:example_test-esp32s2
  133. needs:
  134. - job: build_pytest_examples_esp32s2
  135. artifacts: false
  136. tags: [ esp32s2, generic ]
  137. parallel: 3
  138. pytest_examples_esp32s2_jtag:
  139. extends:
  140. - .pytest_examples_dir_jtag_template
  141. - .rules:test:example_test-esp32s2
  142. tags: [ esp32s2, jtag ]
  143. pytest_examples_esp32s3_generic:
  144. extends:
  145. - .pytest_examples_dir_template
  146. - .rules:test:example_test-esp32s3
  147. needs:
  148. - job: build_pytest_examples_esp32s3
  149. artifacts: false
  150. tags: [ esp32s3, generic ]
  151. parallel: 3
  152. pytest_examples_esp32s3_usb_serial_jtag:
  153. extends:
  154. - .pytest_examples_dir_jtag_template
  155. - .rules:test:example_test-esp32s3
  156. tags: [ esp32s3, usb_serial_jtag ]
  157. pytest_examples_esp32s3_f4r8:
  158. extends:
  159. - .pytest_examples_dir_template
  160. - .rules:test:example_test-esp32s3
  161. needs:
  162. - job: build_pytest_examples_esp32s3
  163. artifacts: false
  164. tags: [ esp32s3, MSPI_F4R8 ]
  165. pytest_examples_esp32c2_generic:
  166. extends:
  167. - .pytest_examples_dir_template
  168. - .rules:test:example_test-esp32c2
  169. needs:
  170. - job: build_pytest_examples_esp32c2
  171. artifacts: false
  172. tags: [ esp32c2, generic, xtal_40mhz ]
  173. parallel: 3
  174. pytest_examples_esp32c2_jtag:
  175. extends:
  176. - .pytest_examples_dir_jtag_template
  177. - .rules:test:example_test-esp32c2
  178. tags: [ esp32c2, jtag ]
  179. pytest_examples_esp32c3_generic:
  180. extends:
  181. - .pytest_examples_dir_template
  182. - .rules:test:example_test-esp32c3
  183. needs:
  184. - job: build_pytest_examples_esp32c3
  185. artifacts: false
  186. tags: [ esp32c3, generic ]
  187. parallel: 3
  188. pytest_examples_esp32c3_usb_serial_jtag:
  189. extends:
  190. - .pytest_examples_dir_jtag_template
  191. - .rules:test:example_test-esp32c3
  192. tags: [ esp32c3, usb_serial_jtag ]
  193. pytest_examples_esp32c3_flash_suspend:
  194. extends:
  195. - .pytest_examples_dir_template
  196. - .rules:test:example_test-esp32c3
  197. needs:
  198. - job: build_pytest_examples_esp32c3
  199. artifacts: false
  200. tags: [ esp32c3, flash_suspend ]
  201. pytest_examples_esp32c6_generic:
  202. extends:
  203. - .pytest_examples_dir_template
  204. - .rules:test:example_test-esp32c6
  205. needs:
  206. - job: build_pytest_examples_esp32c6
  207. artifacts: false
  208. tags: [ esp32c6, generic ]
  209. pytest_examples_esp32h2_generic:
  210. extends:
  211. - .pytest_examples_dir_template
  212. - .rules:test:example_test-esp32h2
  213. needs:
  214. - job: build_pytest_examples_esp32h2
  215. artifacts: false
  216. tags: [ esp32h2, generic ]
  217. pytest_examples_esp32_ethernet_ota:
  218. extends:
  219. - .pytest_examples_dir_template
  220. - .rules:test:example_test-esp32-ethernet
  221. needs:
  222. - job: build_pytest_examples_esp32
  223. artifacts: false
  224. tags: [ esp32, ethernet_ota ]
  225. pytest_examples_esp32_wifi_high_traffic:
  226. extends:
  227. - .pytest_examples_dir_template
  228. - .rules:test:example_test-esp32-wifi
  229. needs:
  230. - job: build_pytest_examples_esp32
  231. artifacts: false
  232. tags: [ esp32, wifi_high_traffic ]
  233. pytest_examples_esp32_flash_encryption_wifi_high_traffic:
  234. extends:
  235. - .pytest_examples_dir_template
  236. - .rules:test:example_test-esp32-include_nightly_run-rule
  237. needs:
  238. - job: build_pytest_examples_esp32
  239. artifacts: false
  240. tags: [ esp32, flash_encryption_wifi_high_traffic ]
  241. pytest_examples_esp32c3_flash_encryption_wifi_high_traffic:
  242. extends:
  243. - .pytest_examples_dir_template
  244. - .rules:test:example_test-esp32c3-include_nightly_run-rule
  245. needs:
  246. - job: build_pytest_examples_esp32c3
  247. artifacts: false
  248. tags: [ esp32c3, flash_encryption_wifi_high_traffic ]
  249. pytest_examples_esp32_ethernet:
  250. extends:
  251. - .pytest_examples_dir_template
  252. - .rules:test:example_test-esp32-ethernet
  253. needs:
  254. - job: build_pytest_examples_esp32
  255. artifacts: false
  256. tags: [ esp32, ethernet]
  257. pytest_examples_esp32_ethernet_httpbin:
  258. extends:
  259. - .pytest_examples_dir_template
  260. - .rules:test:example_test-esp32-ethernet
  261. needs:
  262. - job: build_pytest_examples_esp32
  263. artifacts: false
  264. tags: [ esp32, httpbin]
  265. pytest_examples_esp32_8mb_flash:
  266. extends:
  267. - .pytest_examples_dir_template
  268. - .rules:test:example_test-esp32
  269. needs:
  270. - job: build_pytest_examples_esp32
  271. artifacts: false
  272. tags: [ esp32, ethernet_flash_8m ]
  273. pytest_examples_esp32_wifi_ap:
  274. extends:
  275. - .pytest_examples_dir_template
  276. - .rules:test:example_test-esp32-wifi
  277. needs:
  278. - job: build_pytest_examples_esp32
  279. artifacts: false
  280. tags: [ esp32, wifi_ap ]
  281. pytest_examples_esp32c3_wifi_ap:
  282. extends:
  283. - .pytest_examples_dir_template
  284. - .rules:test:example_test-esp32c3-wifi
  285. needs:
  286. - job: build_pytest_examples_esp32c3
  287. artifacts: false
  288. tags: [ esp32c3, wifi_ap ]
  289. pytest_examples_esp32s3_wifi_ap:
  290. extends:
  291. - .pytest_examples_dir_template
  292. - .rules:test:example_test-esp32s3-wifi
  293. needs:
  294. - job: build_pytest_examples_esp32s3
  295. artifacts: false
  296. tags: [ esp32s3, wifi_ap ]
  297. pytest_examples_esp32s2_wifi_ap:
  298. extends:
  299. - .pytest_examples_dir_template
  300. - .rules:test:example_test-esp32s2-wifi
  301. needs:
  302. - job: build_pytest_examples_esp32s2
  303. artifacts: false
  304. tags: [ esp32s2, wifi_ap ]
  305. pytest_examples_esp32c2_wifi_ap:
  306. extends:
  307. - .pytest_examples_dir_template
  308. - .rules:test:example_test-esp32c2-wifi
  309. needs:
  310. - job: build_pytest_examples_esp32c2
  311. artifacts: false
  312. tags: [ esp32c2, wifi_ap, xtal_40mhz ]
  313. pytest_examples_esp32c2_26m_wifi_ap:
  314. extends:
  315. - .pytest_examples_dir_template
  316. - .rules:test:example_test-esp32c2-wifi
  317. needs:
  318. - job: build_pytest_examples_esp32c2
  319. artifacts: false
  320. tags: [ esp32c2, wifi_ap, xtal_26mhz ]
  321. pytest_examples_esp32c6_wifi_ap:
  322. extends:
  323. - .pytest_examples_dir_template
  324. - .rules:test:example_test-esp32c6-wifi
  325. needs:
  326. - job: build_pytest_examples_esp32c6
  327. artifacts: false
  328. tags: [ esp32c6, wifi_ap ]
  329. pytest_examples_esp32_wifi_router:
  330. extends:
  331. - .pytest_examples_dir_template
  332. - .rules:test:example_test-esp32-wifi
  333. needs:
  334. - job: build_pytest_examples_esp32
  335. artifacts: false
  336. tags: [ esp32, wifi_router ]
  337. pytest_examples_esp32c3_wifi_router:
  338. extends:
  339. - .pytest_examples_dir_template
  340. - .rules:test:example_test-esp32c3-wifi
  341. needs:
  342. - job: build_pytest_examples_esp32c3
  343. artifacts: false
  344. tags: [ esp32c3, wifi_router ]
  345. pytest_examples_esp32s3_wifi_router:
  346. extends:
  347. - .pytest_examples_dir_template
  348. - .rules:test:example_test-esp32s3-wifi
  349. needs:
  350. - job: build_pytest_examples_esp32s3
  351. artifacts: false
  352. tags: [ esp32s3, wifi_router ]
  353. pytest_examples_esp32s2_wifi_router:
  354. extends:
  355. - .pytest_examples_dir_template
  356. - .rules:test:example_test-esp32s2-wifi
  357. needs:
  358. - job: build_pytest_examples_esp32s2
  359. artifacts: false
  360. tags: [ esp32s2, wifi_router ]
  361. pytest_examples_esp32c2_wifi_router:
  362. extends:
  363. - .pytest_examples_dir_template
  364. - .rules:test:example_test-esp32c2-wifi
  365. needs:
  366. - job: build_pytest_examples_esp32c2
  367. artifacts: false
  368. tags: [ esp32c2, wifi_router, xtal_40mhz ]
  369. pytest_examples_esp32c2_26m_wifi_router:
  370. extends:
  371. - .pytest_examples_dir_template
  372. - .rules:test:example_test-esp32c2-wifi
  373. needs:
  374. - job: build_pytest_examples_esp32c2
  375. artifacts: false
  376. tags: [ esp32c2, wifi_router, xtal_26mhz ]
  377. pytest_examples_esp32c6_wifi_router:
  378. extends:
  379. - .pytest_examples_dir_template
  380. - .rules:test:example_test-esp32c6-wifi
  381. needs:
  382. - job: build_pytest_examples_esp32c6
  383. artifacts: false
  384. tags: [ esp32c6, wifi_router ]
  385. pytest_examples_esp32_wifi_iperf:
  386. extends:
  387. - .pytest_examples_dir_template
  388. - .rules:test:example_test-esp32-wifi
  389. needs:
  390. - job: build_pytest_examples_esp32
  391. artifacts: false
  392. tags: [ esp32, Example_ShieldBox_Basic ]
  393. pytest_examples_esp32_wifi_wlan:
  394. extends:
  395. - .pytest_examples_dir_template
  396. - .rules:test:example_test-esp32-wifi
  397. needs:
  398. - job: build_pytest_examples_esp32
  399. artifacts: false
  400. tags: [ esp32, wifi_wlan ]
  401. pytest_examples_esp32_ethernet_router:
  402. extends:
  403. - .pytest_examples_dir_template
  404. - .rules:test:example_test-esp32-ethernet
  405. needs:
  406. - job: build_pytest_examples_esp32
  407. artifacts: false
  408. tags: [ esp32, ethernet_router ]
  409. pytest_examples_esp32_ethernet_vlan:
  410. extends:
  411. - .pytest_examples_dir_template
  412. - .rules:test:example_test-esp32-ethernet
  413. needs:
  414. - job: build_pytest_examples_esp32
  415. artifacts: false
  416. tags: [ esp32, ethernet_vlan ]
  417. pytest_examples_esp32_ethernet_ip101:
  418. extends:
  419. - .pytest_examples_dir_template
  420. - .rules:test:example_test-esp32
  421. needs:
  422. - job: build_pytest_examples_esp32
  423. artifacts: false
  424. tags: [ esp32, ip101 ]
  425. pytest_examples_esp32_ethernet_bridge:
  426. extends:
  427. - .pytest_examples_dir_template
  428. - .rules:test:example_test-esp32
  429. needs:
  430. - job: build_pytest_examples_esp32
  431. artifacts: false
  432. tags: [ esp32, eth_w5500 ]
  433. variables:
  434. PYTEST_EXTRA_FLAGS: "--dev-passwd ${ETHERNET_TEST_PASSWORD} --dev-user ${ETHERNET_TEST_USER}"
  435. pytest_examples_esp32_flash_encryption:
  436. extends:
  437. - .pytest_examples_dir_template
  438. - .rules:test:example_test-esp32
  439. needs:
  440. - job: build_pytest_examples_esp32
  441. artifacts: false
  442. tags: [ esp32, flash_encryption ]
  443. pytest_examples_esp32_wifi_two_dut:
  444. extends:
  445. - .pytest_examples_dir_template
  446. - .rules:test:example_test-esp32-wifi
  447. needs:
  448. - job: build_pytest_examples_esp32
  449. artifacts: false
  450. tags: [ esp32, wifi_two_dut ]
  451. pytest_examples_esp32c3_wifi_two_dut:
  452. extends:
  453. - .pytest_examples_dir_template
  454. - .rules:test:example_test-esp32c3-wifi
  455. needs:
  456. - job: build_pytest_examples_esp32c3
  457. artifacts: false
  458. tags: [ esp32c3, wifi_two_dut ]
  459. pytest_examples_esp32s3_wifi_two_dut:
  460. extends:
  461. - .pytest_examples_dir_template
  462. - .rules:test:example_test-esp32s3-wifi
  463. needs:
  464. - job: build_pytest_examples_esp32s3
  465. artifacts: false
  466. tags: [ esp32s3, wifi_two_dut ]
  467. pytest_examples_esp32c2_wifi_two_dut:
  468. extends:
  469. - .pytest_examples_dir_template
  470. - .rules:test:example_test-esp32c2-wifi
  471. needs:
  472. - job: build_pytest_examples_esp32c2
  473. artifacts: false
  474. tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
  475. pytest_examples_esp32c3_flash_encryption:
  476. extends:
  477. - .pytest_examples_dir_template
  478. - .rules:test:example_test-esp32c3
  479. needs:
  480. - job: build_pytest_examples_esp32c3
  481. artifacts: false
  482. tags: [ esp32c3, flash_encryption ]
  483. pytest_examples_esp32c3_nvs_encr_hmac:
  484. extends:
  485. - .pytest_examples_dir_template
  486. - .rules:test:example_test-esp32c3-nvs_encr_hmac
  487. needs:
  488. - job: build_pytest_examples_esp32c3
  489. artifacts: false
  490. tags: [ esp32c3, nvs_encr_hmac ]
  491. pytest_examples_esp32s2_usb_device:
  492. extends:
  493. - .pytest_examples_dir_template
  494. - .rules:test:example_test-esp32s2-usb
  495. needs:
  496. - job: build_pytest_examples_esp32s2
  497. artifacts: false
  498. tags: [ esp32s2, usb_device ]
  499. pytest_examples_esp32_sdmmc:
  500. extends:
  501. - .pytest_examples_dir_template
  502. - .rules:test:example_test-esp32
  503. needs:
  504. - job: build_pytest_examples_esp32
  505. artifacts: false
  506. tags: [ esp32, sdcard_sdmode ]
  507. pytest_examples_esp32_sdspi:
  508. extends:
  509. - .pytest_examples_dir_template
  510. - .rules:test:example_test-esp32-sdio
  511. needs:
  512. - job: build_pytest_examples_esp32
  513. artifacts: false
  514. tags: [ esp32, sdcard_spimode ]
  515. pytest_examples_esp32s2_sdspi:
  516. extends:
  517. - .pytest_examples_dir_template
  518. - .rules:test:example_test-esp32s2-sdio
  519. needs:
  520. - job: build_pytest_examples_esp32s2
  521. artifacts: false
  522. tags: [ esp32s2, sdcard_spimode ]
  523. pytest_examples_esp32c3_sdspi:
  524. extends:
  525. - .pytest_examples_dir_template
  526. - .rules:test:example_test-esp32c3-sdio
  527. needs:
  528. - job: build_pytest_examples_esp32c3
  529. artifacts: false
  530. tags: [ esp32c3, sdcard_spimode ]
  531. pytest_examples_esp32_extflash:
  532. extends:
  533. - .pytest_examples_dir_template
  534. - .rules:test:example_test-esp32
  535. needs:
  536. - job: build_pytest_examples_esp32
  537. artifacts: false
  538. tags: [ esp32, external_flash ]
  539. pytest_examples_esp32_adc:
  540. extends:
  541. - .pytest_examples_dir_template
  542. - .rules:test:example_test-esp32-adc
  543. needs:
  544. - job: build_pytest_examples_esp32
  545. artifacts: false
  546. tags: [ esp32, adc ]
  547. pytest_examples_esp32s2_adc:
  548. extends:
  549. - .pytest_examples_dir_template
  550. - .rules:test:example_test-esp32s2-adc
  551. needs:
  552. - job: build_pytest_examples_esp32s2
  553. artifacts: false
  554. tags: [ esp32s2, adc ]
  555. pytest_examples_esp32s3_adc:
  556. extends:
  557. - .pytest_examples_dir_template
  558. - .rules:test:example_test-esp32s3-adc
  559. needs:
  560. - job: build_pytest_examples_esp32s3
  561. artifacts: false
  562. tags: [ esp32s3, adc ]
  563. pytest_examples_esp32c3_adc:
  564. extends:
  565. - .pytest_examples_dir_template
  566. - .rules:test:example_test-esp32c3-adc
  567. needs:
  568. - job: build_pytest_examples_esp32c3
  569. artifacts: false
  570. tags: [ esp32c3, adc ]
  571. pytest_examples_esp32c2_adc:
  572. extends:
  573. - .pytest_examples_dir_template
  574. - .rules:test:example_test-esp32c2-adc
  575. needs:
  576. - job: build_pytest_examples_esp32c2
  577. artifacts: false
  578. tags: [ esp32c2, adc, xtal_26mhz]
  579. pytest_examples_esp32c6_adc:
  580. extends:
  581. - .pytest_examples_dir_template
  582. - .rules:test:example_test-esp32c6-adc
  583. needs:
  584. - job: build_pytest_examples_esp32c6
  585. artifacts: false
  586. tags: [ esp32c6, adc ]
  587. pytest_examples_esp32h2_adc:
  588. extends:
  589. - .pytest_examples_dir_template
  590. - .rules:test:example_test-esp32h2-adc
  591. needs:
  592. - job: build_pytest_examples_esp32h2
  593. artifacts: false
  594. tags: [ esp32h2, adc ]
  595. pytest_examples_esp32s3_emmc:
  596. extends:
  597. - .pytest_examples_dir_template
  598. - .rules:test:example_test-esp32s3
  599. needs:
  600. - job: build_pytest_examples_esp32s3
  601. artifacts: false
  602. tags: [ esp32s3, emmc ]
  603. .pytest_components_dir_template:
  604. extends: .pytest_template
  605. variables:
  606. TEST_DIR: components
  607. BUILD_JOB_PREFIX: build_pytest_components_
  608. pytest_components_esp32_generic:
  609. extends:
  610. - .pytest_components_dir_template
  611. - .rules:test:component_ut-esp32
  612. needs:
  613. - job: build_pytest_components_esp32
  614. artifacts: false
  615. tags: [ esp32, generic ]
  616. parallel: 7
  617. pytest_components_esp32_generic_multi_device:
  618. extends:
  619. - .pytest_components_dir_template
  620. - .rules:test:component_ut-esp32
  621. needs:
  622. - job: build_pytest_components_esp32
  623. artifacts: false
  624. tags: [ esp32, generic_multi_device ]
  625. pytest_components_esp32_wifi_two_dut:
  626. extends:
  627. - .pytest_components_dir_template
  628. - .rules:test:component_ut-esp32
  629. needs:
  630. - job: build_pytest_components_esp32
  631. artifacts: false
  632. tags: [ esp32, wifi_two_dut ]
  633. pytest_components_esp32_adc:
  634. extends:
  635. - .pytest_components_dir_template
  636. - .rules:test:component_ut-esp32-adc
  637. needs:
  638. - job: build_pytest_components_esp32
  639. artifacts: false
  640. tags: [ esp32, adc ]
  641. pytest_components_esp32_sdio:
  642. extends:
  643. - .pytest_components_dir_template
  644. - .rules:test:component_ut-esp32-sdio
  645. needs:
  646. - job: build_pytest_components_esp32
  647. artifacts: false
  648. tags: [ esp32, sdio_master_slave ]
  649. pytest_components_esp32_esp32c6_sdio:
  650. extends:
  651. - .pytest_components_dir_template
  652. - .rules:test:component_ut-esp32-sdio
  653. needs:
  654. - job: build_pytest_components_esp32
  655. artifacts: false
  656. - job: build_pytest_components_esp32c6
  657. artifacts: false
  658. tags: [ esp32c6, sdio_multidev_32_c6 ]
  659. script:
  660. - retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
  661. # get runner env config file
  662. - retry_failed git clone $TEST_ENV_CONFIG_REPO
  663. - python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
  664. # using runner tags as markers to filter the test cases
  665. # Runner tags are comma separated, replace the comma with " and " for markers
  666. - job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
  667. - markers=$(echo $job_tags | sed -e "s/,/ and /g")
  668. # download the artifacts, requires esp32 and esp32c6 chips
  669. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_components_esp32"
  670. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_components_esp32c6"
  671. - run_cmd pytest $TEST_DIR
  672. -m \"${markers}\"
  673. --junitxml=XUNIT_RESULT.xml
  674. --ignore-result-files known_failure_cases/known_failure_cases.txt
  675. --parallel-count ${CI_NODE_TOTAL:-1}
  676. --parallel-index ${CI_NODE_INDEX:-1}
  677. ${PYTEST_EXTRA_FLAGS}
  678. --app-info-filepattern \"list_job_*.txt\"
  679. pytest_components_esp32_ip101:
  680. extends:
  681. - .pytest_components_dir_template
  682. - .rules:test:component_ut-esp32
  683. needs:
  684. - job: build_pytest_components_esp32
  685. artifacts: false
  686. tags: [ esp32, ip101 ]
  687. pytest_components_esp32_lan8720:
  688. extends:
  689. - .pytest_components_dir_template
  690. - .rules:test:component_ut-esp32
  691. needs:
  692. - job: build_pytest_components_esp32
  693. artifacts: false
  694. tags: [ esp32, eth_lan8720 ]
  695. pytest_components_esp32_rtl8201:
  696. extends:
  697. - .pytest_components_dir_template
  698. - .rules:test:component_ut-esp32
  699. needs:
  700. - job: build_pytest_components_esp32
  701. artifacts: false
  702. tags: [ esp32, eth_rtl8201 ]
  703. pytest_components_esp32_w5500:
  704. extends:
  705. - .pytest_components_dir_template
  706. - .rules:test:component_ut-esp32
  707. needs:
  708. - job: build_pytest_components_esp32
  709. artifacts: false
  710. tags: [ esp32, eth_w5500 ]
  711. pytest_components_esp32_ksz8851snl:
  712. extends:
  713. - .pytest_components_dir_template
  714. - .rules:test:component_ut-esp32
  715. needs:
  716. - job: build_pytest_components_esp32
  717. artifacts: false
  718. tags: [ esp32, eth_ksz8851snl ]
  719. pytest_components_esp32_dm9051:
  720. extends:
  721. - .pytest_components_dir_template
  722. - .rules:test:component_ut-esp32
  723. needs:
  724. - job: build_pytest_components_esp32
  725. artifacts: false
  726. tags: [ esp32, eth_dm9051 ]
  727. pytest_components_esp32_ksz8041:
  728. extends:
  729. - .pytest_components_dir_template
  730. - .rules:test:component_ut-esp32
  731. needs:
  732. - job: build_pytest_components_esp32
  733. artifacts: false
  734. tags: [ esp32, eth_ksz8041 ]
  735. pytest_components_esp32_dp83848:
  736. extends:
  737. - .pytest_components_dir_template
  738. - .rules:test:component_ut-esp32
  739. needs:
  740. - job: build_pytest_components_esp32
  741. artifacts: false
  742. tags: [ esp32, eth_dp83848 ]
  743. pytest_components_esp32_ethernet:
  744. extends:
  745. - .pytest_components_dir_template
  746. - .rules:test:component_ut-esp32
  747. needs:
  748. - job: build_pytest_components_esp32
  749. artifacts: false
  750. tags: [ esp32, ethernet ]
  751. pytest_components_esp32_flash_encryption:
  752. extends:
  753. - .pytest_components_dir_template
  754. - .rules:test:component_ut-esp32
  755. needs:
  756. - job: build_pytest_components_esp32
  757. artifacts: false
  758. tags: [ esp32, flash_encryption ]
  759. pytest_components_esp32_flash_multi:
  760. extends:
  761. - .pytest_components_dir_template
  762. - .rules:test:component_ut-esp32-flash_multi
  763. needs:
  764. - job: build_pytest_components_esp32
  765. artifacts: false
  766. tags: [ esp32, flash_multi ]
  767. pytest_components_esp32_xtal32k:
  768. extends:
  769. - .pytest_components_dir_template
  770. - .rules:test:component_ut-esp32
  771. needs:
  772. - job: build_pytest_components_esp32
  773. artifacts: false
  774. tags: [ esp32, xtal32k ]
  775. pytest_components_esp32_no32kXtal:
  776. extends:
  777. - .pytest_components_dir_template
  778. - .rules:test:component_ut-esp32
  779. needs:
  780. - job: build_pytest_components_esp32
  781. artifacts: false
  782. tags: [ esp32, no32kXtal ]
  783. pytest_components_esp32_rs485_multi:
  784. extends:
  785. - .pytest_components_dir_template
  786. - .rules:test:component_ut-esp32
  787. needs:
  788. - job: build_pytest_components_esp32
  789. artifacts: false
  790. tags: [ esp32, multi_dut_modbus_rs485 ]
  791. pytest_components_esp32_psramv0:
  792. extends:
  793. - .pytest_components_dir_template
  794. - .rules:test:component_ut-esp32
  795. needs:
  796. - job: build_pytest_components_esp32
  797. artifacts: false
  798. tags: [ esp32, psramv0 ]
  799. pytest_components_esp32s2_generic:
  800. extends:
  801. - .pytest_components_dir_template
  802. - .rules:test:component_ut-esp32s2
  803. needs:
  804. - job: build_pytest_components_esp32s2
  805. artifacts: false
  806. tags: [ esp32s2, generic ]
  807. parallel: 5
  808. pytest_components_esp32s2_generic_multi_device:
  809. extends:
  810. - .pytest_components_dir_template
  811. - .rules:test:component_ut-esp32s2
  812. needs:
  813. - job: build_pytest_components_esp32s2
  814. artifacts: false
  815. tags: [ esp32s2, generic_multi_device ]
  816. pytest_components_esp32s2_adc:
  817. extends:
  818. - .pytest_components_dir_template
  819. - .rules:test:component_ut-esp32s2-adc
  820. needs:
  821. - job: build_pytest_components_esp32s2
  822. artifacts: false
  823. tags: [ esp32s2, adc ]
  824. pytest_components_esp32s2_flash_multi:
  825. extends:
  826. - .pytest_components_dir_template
  827. - .rules:test:component_ut-esp32s2-flash_multi
  828. needs:
  829. - job: build_pytest_components_esp32s2
  830. artifacts: false
  831. tags: [ esp32s2, flash_multi ]
  832. pytest_components_esp32s3_generic:
  833. extends:
  834. - .pytest_components_dir_template
  835. - .rules:test:component_ut-esp32s3
  836. needs:
  837. - job: build_pytest_components_esp32s3
  838. artifacts: false
  839. tags: [ esp32s3, generic ]
  840. parallel: 5
  841. pytest_components_esp32s3_generic_multi_device:
  842. extends:
  843. - .pytest_components_dir_template
  844. - .rules:test:component_ut-esp32s3
  845. needs:
  846. - job: build_pytest_components_esp32s3
  847. artifacts: false
  848. tags: [ esp32s3, generic_multi_device ]
  849. pytest_components_esp32s3_adc:
  850. extends:
  851. - .pytest_components_dir_template
  852. - .rules:test:component_ut-esp32s3-adc
  853. needs:
  854. - job: build_pytest_components_esp32s3
  855. artifacts: false
  856. tags: [ esp32s3, adc ]
  857. pytest_components_esp32s3_octal_psram:
  858. extends:
  859. - .pytest_components_dir_template
  860. - .rules:test:component_ut-esp32s3
  861. needs:
  862. - job: build_pytest_components_esp32s3
  863. artifacts: false
  864. tags: [ esp32s3, octal_psram ]
  865. pytest_components_esp32s3_quad_psram:
  866. extends:
  867. - .pytest_components_dir_template
  868. - .rules:test:component_ut-esp32s3
  869. needs:
  870. - job: build_pytest_components_esp32s3
  871. artifacts: false
  872. tags: [ esp32s3, quad_psram ]
  873. pytest_components_esp32s3_flash_encryption_f4r8:
  874. extends:
  875. - .pytest_components_dir_template
  876. - .rules:test:component_ut-esp32s3
  877. needs:
  878. - job: build_pytest_components_esp32s3
  879. artifacts: false
  880. tags: [ esp32s3, flash_encryption_f4r8 ]
  881. pytest_components_esp32s3_flash_encryption_f8r8:
  882. extends:
  883. - .pytest_components_dir_template
  884. - .rules:test:component_ut-esp32s3
  885. needs:
  886. - job: build_pytest_components_esp32s3
  887. artifacts: false
  888. tags: [ esp32s3, flash_encryption_f8r8 ]
  889. pytest_components_esp32s3_flash_multi:
  890. extends:
  891. - .pytest_components_dir_template
  892. - .rules:test:component_ut-esp32s3-flash_multi
  893. needs:
  894. - job: build_pytest_components_esp32s3
  895. artifacts: false
  896. tags: [ esp32s3, flash_multi ]
  897. pytest_components_esp32s3_mspi_f4r4:
  898. extends:
  899. - .pytest_components_dir_template
  900. - .rules:test:component_ut-esp32s3
  901. needs:
  902. - job: build_pytest_components_esp32s3
  903. artifacts: false
  904. tags: [ esp32s3, MSPI_F4R4 ]
  905. pytest_components_esp32s3_mspi_f4r8:
  906. extends:
  907. - .pytest_components_dir_template
  908. - .rules:test:component_ut-esp32s3
  909. needs:
  910. - job: build_pytest_components_esp32s3
  911. artifacts: false
  912. tags: [ esp32s3, MSPI_F4R8 ]
  913. pytest_components_esp32s3_mspi_f8r8:
  914. extends:
  915. - .pytest_components_dir_template
  916. - .rules:test:component_ut-esp32s3
  917. needs:
  918. - job: build_pytest_components_esp32s3
  919. artifacts: false
  920. tags: [ esp32s3, MSPI_F8R8 ]
  921. pytest_components_esp32s3_usb_serial_jtag:
  922. extends:
  923. - .pytest_components_dir_template
  924. - .rules:test:component_ut-esp32s3
  925. needs:
  926. - build_pytest_components_esp32s3
  927. tags: [ esp32s3, usb_serial_jtag ]
  928. pytest_components_esp32c2_generic:
  929. extends:
  930. - .pytest_components_dir_template
  931. - .rules:test:component_ut-esp32c2
  932. needs:
  933. - job: build_pytest_components_esp32c2
  934. artifacts: false
  935. tags: [ esp32c2, generic, xtal_40mhz ]
  936. parallel: 3
  937. pytest_components_esp32c2_adc:
  938. extends:
  939. - .pytest_components_dir_template
  940. - .rules:test:component_ut-esp32c2-adc
  941. needs:
  942. - job: build_pytest_components_esp32c2
  943. artifacts: false
  944. tags: [ esp32c2, adc, xtal_26mhz ]
  945. pytest_components_esp32c2_generic_multi_device:
  946. extends:
  947. - .pytest_components_dir_template
  948. - .rules:test:component_ut-esp32c2
  949. needs:
  950. - job: build_pytest_components_esp32c2
  951. artifacts: false
  952. tags: [ esp32c2, generic_multi_device, xtal_40mhz ]
  953. pytest_components_esp32c2_xtal_26mhz:
  954. extends:
  955. - .pytest_components_dir_template
  956. - .rules:test:component_ut-esp32c2
  957. needs:
  958. - job: build_pytest_components_esp32c2
  959. artifacts: false
  960. tags: [ esp32c2, generic, xtal_26mhz ]
  961. pytest_components_esp32c3_generic:
  962. extends:
  963. - .pytest_components_dir_template
  964. - .rules:test:component_ut-esp32c3
  965. needs:
  966. - job: build_pytest_components_esp32c3
  967. artifacts: false
  968. tags: [ esp32c3, generic ]
  969. parallel: 3
  970. pytest_components_esp32c3_i2c_oled:
  971. extends:
  972. - .pytest_components_dir_template
  973. - .rules:test:component_ut-esp32c3
  974. needs:
  975. - job: build_pytest_components_esp32c3
  976. artifacts: false
  977. tags: [ esp32c3, i2c_oled ]
  978. pytest_components_esp32c3_generic_multi_device:
  979. extends:
  980. - .pytest_components_dir_template
  981. - .rules:test:component_ut-esp32c3
  982. needs:
  983. - job: build_pytest_components_esp32c3
  984. artifacts: false
  985. tags: [ esp32c3, generic_multi_device ]
  986. pytest_components_esp32c3_wifi_two_dut:
  987. extends:
  988. - .pytest_components_dir_template
  989. - .rules:test:component_ut-esp32c3-wifi
  990. needs:
  991. - job: build_pytest_components_esp32c3
  992. artifacts: false
  993. tags: [ esp32c3, wifi_two_dut ]
  994. pytest_components_esp32c3_usb_serial_jtag:
  995. extends:
  996. - .pytest_components_dir_template
  997. - .rules:test:component_ut-esp32c3
  998. needs:
  999. - build_pytest_components_esp32c3
  1000. tags: [ esp32c3, usb_serial_jtag ]
  1001. pytest_components_esp32s3_wifi_two_dut:
  1002. extends:
  1003. - .pytest_components_dir_template
  1004. - .rules:test:component_ut-esp32s3-wifi
  1005. needs:
  1006. - job: build_pytest_components_esp32s3
  1007. artifacts: false
  1008. tags: [ esp32s3, wifi_two_dut ]
  1009. pytest_components_esp32c2_wifi_two_dut:
  1010. extends:
  1011. - .pytest_components_dir_template
  1012. - .rules:test:component_ut-esp32c2-wifi
  1013. needs:
  1014. - job: build_pytest_components_esp32c2
  1015. artifacts: false
  1016. tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
  1017. pytest_components_esp32c3_adc:
  1018. extends:
  1019. - .pytest_components_dir_template
  1020. - .rules:test:component_ut-esp32c3-adc
  1021. needs:
  1022. - job: build_pytest_components_esp32c3
  1023. artifacts: false
  1024. tags: [ esp32c3, adc ]
  1025. pytest_components_esp32c3_flash_encryption:
  1026. extends:
  1027. - .pytest_components_dir_template
  1028. - .rules:test:component_ut-esp32c3
  1029. needs:
  1030. - job: build_pytest_components_esp32c3
  1031. artifacts: false
  1032. tags: [ esp32c3, flash_encryption ]
  1033. pytest_components_esp32c3_nvs_encr_hmac:
  1034. extends:
  1035. - .pytest_components_dir_template
  1036. - .rules:test:component_ut-esp32c3-nvs_encr_hmac
  1037. needs:
  1038. - job: build_pytest_components_esp32c3
  1039. artifacts: false
  1040. tags: [ esp32c3, nvs_encr_hmac ]
  1041. pytest_components_esp32c3_flash_multi:
  1042. extends:
  1043. - .pytest_components_dir_template
  1044. - .rules:test:component_ut-esp32c3-flash_multi
  1045. needs:
  1046. - job: build_pytest_components_esp32c3
  1047. artifacts: false
  1048. tags: [ esp32c3, flash_multi ]
  1049. pytest_components_esp32_sdmmc:
  1050. extends:
  1051. - .pytest_components_dir_template
  1052. - .rules:test:component_ut-esp32
  1053. needs:
  1054. - job: build_pytest_components_esp32
  1055. artifacts: false
  1056. tags: [ esp32, sdcard_sdmode ]
  1057. pytest_components_esp32_sdspi:
  1058. extends:
  1059. - .pytest_components_dir_template
  1060. - .rules:test:component_ut-esp32-sdio
  1061. needs:
  1062. - job: build_pytest_components_esp32
  1063. artifacts: false
  1064. tags: [ esp32, sdcard_spimode ]
  1065. pytest_components_esp32s2_sdspi:
  1066. extends:
  1067. - .pytest_components_dir_template
  1068. - .rules:test:component_ut-esp32s2-sdio
  1069. needs:
  1070. - job: build_pytest_components_esp32s2
  1071. artifacts: false
  1072. tags: [ esp32s2, sdcard_spimode ]
  1073. pytest_components_esp32c3_sdspi:
  1074. extends:
  1075. - .pytest_components_dir_template
  1076. - .rules:test:component_ut-esp32c3-sdio
  1077. needs:
  1078. - job: build_pytest_components_esp32c3
  1079. artifacts: false
  1080. tags: [ esp32c3, sdcard_spimode ]
  1081. pytest_components_esp32c6_generic:
  1082. extends:
  1083. - .pytest_components_dir_template
  1084. - .rules:test:component_ut-esp32c6
  1085. needs:
  1086. - job: build_pytest_components_esp32c6
  1087. artifacts: false
  1088. tags: [ esp32c6, generic ]
  1089. parallel: 2
  1090. pytest_components_esp32c6_usb_serial_jtag:
  1091. extends:
  1092. - .pytest_components_dir_template
  1093. - .rules:test:component_ut-esp32c6
  1094. needs:
  1095. - build_pytest_components_esp32c6
  1096. tags: [ esp32c6, usb_serial_jtag ]
  1097. pytest_components_esp32h2_generic:
  1098. extends:
  1099. - .pytest_components_dir_template
  1100. - .rules:test:component_ut-esp32h2
  1101. needs:
  1102. - job: build_pytest_components_esp32h2
  1103. artifacts: false
  1104. tags: [ esp32h2, generic ]
  1105. parallel: 2
  1106. pytest_components_esp32h2_generic_multi_device:
  1107. extends:
  1108. - .pytest_components_dir_template
  1109. - .rules:test:component_ut-esp32h2
  1110. needs:
  1111. - job: build_pytest_components_esp32h2
  1112. artifacts: false
  1113. tags: [ esp32h2, generic_multi_device ]
  1114. pytest_components_esp32h2_adc:
  1115. extends:
  1116. - .pytest_components_dir_template
  1117. - .rules:test:component_ut-esp32h2-adc
  1118. needs:
  1119. - job: build_pytest_components_esp32h2
  1120. artifacts: false
  1121. tags: [ esp32h2, adc ]
  1122. pytest_components_esp32h2_ecdsa:
  1123. extends:
  1124. - .pytest_components_dir_template
  1125. - .rules:test:component_ut-esp32h2-ecdsa
  1126. needs:
  1127. - job: build_pytest_components_esp32h2
  1128. artifacts: false
  1129. tags: [ esp32h2, ecdsa_efuse ]
  1130. pytest_components_esp32h2_usb_serial_jtag:
  1131. extends:
  1132. - .pytest_components_dir_template
  1133. - .rules:test:component_ut-esp32h2
  1134. needs:
  1135. - build_pytest_components_esp32h2
  1136. tags: [ esp32h2, usb_serial_jtag ]
  1137. pytest_components_esp32c6_generic_multi_device:
  1138. extends:
  1139. - .pytest_components_dir_template
  1140. - .rules:test:component_ut-esp32c6
  1141. needs:
  1142. - job: build_pytest_components_esp32c6
  1143. artifacts: false
  1144. tags: [ esp32c6, generic_multi_device ]
  1145. pytest_components_esp32c6_adc:
  1146. extends:
  1147. - .pytest_components_dir_template
  1148. - .rules:test:component_ut-esp32c6-adc
  1149. needs:
  1150. - job: build_pytest_components_esp32c6
  1151. artifacts: false
  1152. tags: [ esp32c6, adc ]
  1153. pytest_components_esp32c6_i154:
  1154. extends:
  1155. - .pytest_components_dir_template
  1156. - .rules:test:component_ut-esp32c6-i154
  1157. needs:
  1158. - job: build_pytest_components_esp32c6
  1159. artifacts: false
  1160. tags: [ esp32c6, ieee802154 ]
  1161. pytest_examples_openthread_br:
  1162. extends:
  1163. - .pytest_examples_dir_template
  1164. - .rules:test:example_test-i154
  1165. needs:
  1166. - job: build_pytest_examples_esp32s3
  1167. artifacts: false
  1168. - job: build_pytest_examples_esp32c6
  1169. artifacts: false
  1170. - job: build_pytest_examples_esp32h2
  1171. artifacts: false
  1172. tags: [ esp32c6, openthread_br ]
  1173. script:
  1174. - retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
  1175. # get runner env config file
  1176. - retry_failed git clone $TEST_ENV_CONFIG_REPO
  1177. - python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
  1178. # using runner tags as markers to filter the test cases
  1179. # Runner tags are comma separated, replace the comma with " and " for markers
  1180. - job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
  1181. - markers=$(echo $job_tags | sed -e "s/,/ and /g")
  1182. # download the artifacts, requires s3, c6, h2 chips
  1183. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32s3"
  1184. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
  1185. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
  1186. - run_cmd pytest $TEST_DIR
  1187. -m \"${markers}\"
  1188. --junitxml=XUNIT_RESULT.xml
  1189. --ignore-result-files known_failure_cases/known_failure_cases.txt
  1190. --parallel-count ${CI_NODE_TOTAL:-1}
  1191. --parallel-index ${CI_NODE_INDEX:-1}
  1192. ${PYTEST_EXTRA_FLAGS}
  1193. --app-info-filepattern \"list_job_*.txt\"
  1194. pytest_examples_openthread_bbr:
  1195. extends:
  1196. - .pytest_examples_dir_template
  1197. - .rules:test:example_test-i154
  1198. needs:
  1199. - job: build_pytest_examples_esp32s3
  1200. artifacts: false
  1201. - job: build_pytest_examples_esp32c6
  1202. artifacts: false
  1203. - job: build_pytest_examples_esp32h2
  1204. artifacts: false
  1205. tags: [ esp32c6, openthread_bbr ]
  1206. script:
  1207. - retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
  1208. # get runner env config file
  1209. - retry_failed git clone $TEST_ENV_CONFIG_REPO
  1210. - python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
  1211. # using runner tags as markers to filter the test cases
  1212. # Runner tags are comma separated, replace the comma with " and " for markers
  1213. - job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
  1214. - markers=$(echo $job_tags | sed -e "s/,/ and /g")
  1215. # download the artifacts, requires s3, c6, h2 chips
  1216. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32s3"
  1217. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
  1218. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
  1219. - run_cmd pytest $TEST_DIR
  1220. -m \"${markers}\"
  1221. --junitxml=XUNIT_RESULT.xml
  1222. --ignore-result-files known_failure_cases/known_failure_cases.txt
  1223. --parallel-count ${CI_NODE_TOTAL:-1}
  1224. --parallel-index ${CI_NODE_INDEX:-1}
  1225. ${PYTEST_EXTRA_FLAGS}
  1226. --app-info-filepattern \"list_job_*.txt\"
  1227. pytest_examples_openthread_sleep:
  1228. extends:
  1229. - .pytest_examples_dir_template
  1230. - .rules:test:example_test-esp32h2
  1231. needs:
  1232. - job: build_pytest_examples_esp32c6
  1233. artifacts: false
  1234. - job: build_pytest_examples_esp32h2
  1235. artifacts: false
  1236. tags: [ esp32c6, openthread_sleep ]
  1237. script:
  1238. - retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
  1239. # get runner env config file
  1240. - retry_failed git clone $TEST_ENV_CONFIG_REPO
  1241. - python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
  1242. # using runner tags as markers to filter the test cases
  1243. # Runner tags are comma separated, replace the comma with " and " for markers
  1244. - job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
  1245. - markers=$(echo $job_tags | sed -e "s/,/ and /g")
  1246. # download the artifacts, requires c6, h2 chips
  1247. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
  1248. - run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
  1249. - run_cmd pytest $TEST_DIR
  1250. -m \"${markers}\"
  1251. --junitxml=XUNIT_RESULT.xml
  1252. --ignore-result-files known_failure_cases/known_failure_cases.txt
  1253. --parallel-count ${CI_NODE_TOTAL:-1}
  1254. --parallel-index ${CI_NODE_INDEX:-1}
  1255. ${PYTEST_EXTRA_FLAGS}
  1256. --app-info-filepattern \"list_job_*.txt\"
  1257. pytest_examples_esp32h2_zigbee:
  1258. extends:
  1259. - .pytest_examples_dir_template
  1260. - .rules:test:example_test-esp32h2
  1261. needs:
  1262. - job: build_pytest_examples_esp32h2
  1263. artifacts: false
  1264. tags: [ esp32h2, zigbee_multi_dut ]
  1265. pytest_components_esp32s3_usb_host:
  1266. extends:
  1267. - .pytest_components_dir_template
  1268. - .rules:test:component_ut-esp32s3-usb
  1269. needs:
  1270. - job: build_pytest_components_esp32s3
  1271. artifacts: false
  1272. tags: [ esp32s3, usb_host_flash_disk ]
  1273. .pytest_test_apps_dir_template:
  1274. extends: .pytest_template
  1275. variables:
  1276. TEST_DIR: tools/test_apps
  1277. BUILD_JOB_PREFIX: build_pytest_test_apps_
  1278. REQUIRES_ELF_FILES: "1"
  1279. pytest_test_apps_esp32_generic:
  1280. extends:
  1281. - .pytest_test_apps_dir_template
  1282. - .rules:test:custom_test-esp32
  1283. needs:
  1284. - job: build_pytest_test_apps_esp32
  1285. artifacts: false
  1286. tags: [ esp32, generic ]
  1287. pytest_test_apps_esp32_jtag:
  1288. extends:
  1289. - .pytest_test_apps_dir_template
  1290. - .rules:test:custom_test-esp32
  1291. needs:
  1292. - job: build_pytest_test_apps_esp32
  1293. artifacts: false
  1294. tags: [ esp32, jtag ]
  1295. variables:
  1296. PYTEST_EXTRA_FLAGS: "--log-cli-level DEBUG"
  1297. pytest_test_apps_esp32_ethernet:
  1298. extends:
  1299. - .pytest_test_apps_dir_template
  1300. - .rules:test:custom_test-esp32
  1301. needs:
  1302. - job: build_pytest_test_apps_esp32
  1303. artifacts: false
  1304. tags: [ esp32, ethernet ]
  1305. pytest_test_apps_esp32s2_generic:
  1306. extends:
  1307. - .pytest_test_apps_dir_template
  1308. - .rules:test:custom_test-esp32s2
  1309. needs:
  1310. - job: build_pytest_test_apps_esp32s2
  1311. artifacts: false
  1312. tags: [ esp32s2, generic ]
  1313. pytest_test_apps_esp32s3_generic:
  1314. extends:
  1315. - .pytest_test_apps_dir_template
  1316. - .rules:test:custom_test-esp32s3
  1317. needs:
  1318. - job: build_pytest_test_apps_esp32s3
  1319. artifacts: false
  1320. tags: [ esp32s3, generic ]
  1321. pytest_test_apps_esp32c2_generic:
  1322. extends:
  1323. - .pytest_test_apps_dir_template
  1324. - .rules:test:custom_test-esp32c2
  1325. needs:
  1326. - job: build_pytest_test_apps_esp32c2
  1327. artifacts: false
  1328. tags: [ esp32c2, generic, xtal_40mhz ]
  1329. pytest_test_apps_esp32c3_generic:
  1330. extends:
  1331. - .pytest_test_apps_dir_template
  1332. - .rules:test:custom_test-esp32c3
  1333. needs:
  1334. - job: build_pytest_test_apps_esp32c3
  1335. artifacts: false
  1336. tags: [ esp32c3, generic ]
  1337. pytest_test_apps_esp32c6_generic:
  1338. extends:
  1339. - .pytest_test_apps_dir_template
  1340. - .rules:test:custom_test-esp32c6
  1341. needs:
  1342. - job: build_pytest_test_apps_esp32c6
  1343. artifacts: false
  1344. tags: [ esp32c6, generic ]
  1345. pytest_test_apps_esp32h2_generic:
  1346. extends:
  1347. - .pytest_test_apps_dir_template
  1348. - .rules:test:custom_test-esp32h2
  1349. needs:
  1350. - job: build_pytest_test_apps_esp32h2
  1351. artifacts: false
  1352. tags: [ esp32h2, generic ]
  1353. pytest_test_apps_esp32s3_mspi_f8r8:
  1354. extends:
  1355. - .pytest_test_apps_dir_template
  1356. - .rules:test:custom_test-esp32s3
  1357. needs:
  1358. - job: build_pytest_test_apps_esp32s3
  1359. artifacts: false
  1360. tags: [ esp32s3, MSPI_F8R8 ]
  1361. pytest_test_apps_esp32s3_mspi_f4r8:
  1362. extends:
  1363. - .pytest_test_apps_dir_template
  1364. - .rules:test:custom_test-esp32s3
  1365. needs:
  1366. - job: build_pytest_test_apps_esp32s3
  1367. artifacts: false
  1368. tags: [ esp32s3, MSPI_F4R8 ]
  1369. pytest_test_apps_esp32s3_mspi_f4r4:
  1370. extends:
  1371. - .pytest_test_apps_dir_template
  1372. - .rules:test:custom_test-esp32s3
  1373. needs:
  1374. - job: build_pytest_test_apps_esp32s3
  1375. artifacts: false
  1376. tags: [ esp32s3, MSPI_F4R4 ]
  1377. pytest_test_apps_esp32s2_wifi_two_dut:
  1378. extends:
  1379. - .pytest_test_apps_dir_template
  1380. - .rules:test:custom_test-esp32s2-wifi
  1381. needs:
  1382. - job: build_pytest_test_apps_esp32s2
  1383. artifacts: false
  1384. tags: [ esp32s2, wifi_two_dut ]
  1385. pytest_test_apps_esp32s3_wifi_two_dut:
  1386. extends:
  1387. - .pytest_test_apps_dir_template
  1388. - .rules:test:custom_test-esp32s3-wifi
  1389. needs:
  1390. - job: build_pytest_test_apps_esp32s3
  1391. artifacts: false
  1392. tags: [ esp32s3, wifi_two_dut ]
  1393. pytest_test_apps_esp32c2_wifi_two_dut:
  1394. extends:
  1395. - .pytest_test_apps_dir_template
  1396. - .rules:test:custom_test-esp32c2-wifi
  1397. needs:
  1398. - job: build_pytest_test_apps_esp32c2
  1399. artifacts: false
  1400. tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
  1401. pytest_test_apps_esp32c3_wifi_two_dut:
  1402. extends:
  1403. - .pytest_test_apps_dir_template
  1404. - .rules:test:custom_test-esp32c3-wifi
  1405. needs:
  1406. - job: build_pytest_test_apps_esp32c3
  1407. artifacts: false
  1408. tags: [ esp32c3, wifi_two_dut]