Skip to content

Commit 5ce2a49

Browse files
authored
Merge pull request #186 from espressif/fix/empty-collect-file
fix: collect file not created when no apps built
2 parents 7093ff6 + 2196e16 commit 5ce2a49

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

idf_build_apps/main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import sys
1111
import textwrap
1212
import typing as t
13+
from pathlib import Path
1314

1415
import argcomplete
1516
from pydantic import (
@@ -170,6 +171,13 @@ def build_apps(
170171
LOGGER.debug('Remove existing collect file %s', f)
171172

172173
exit_code = 0
174+
175+
# create empty files, avoid no file when no app is built
176+
if build_arguments.collect_app_info:
177+
Path(build_arguments.collect_app_info).touch()
178+
if build_arguments.collect_size_info:
179+
Path(build_arguments.collect_size_info).touch()
180+
173181
for i, app in enumerate(apps):
174182
index = i + 1 # we use 1-based
175183
if index < start or index > stop:

tests/test_build.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
1+
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
22
# SPDX-License-Identifier: Apache-2.0
33

44
import os
@@ -22,6 +22,7 @@
2222
from idf_build_apps.app import (
2323
CMakeApp,
2424
)
25+
from idf_build_apps.args import BuildArguments
2526
from idf_build_apps.constants import (
2627
IDF_PATH,
2728
BuildStatus,
@@ -202,3 +203,18 @@ def test_build_apps_without_passing_apps(self, tmp_path):
202203
assert test_suite.attrib['skipped'] == '0'
203204

204205
assert test_suite.findall('testcase')[0].attrib['name'] == 'foo/bar/build'
206+
207+
208+
def test_build_apps_collect_files_when_no_apps_built(tmp_path):
209+
os.chdir(tmp_path)
210+
211+
build_apps(
212+
build_arguments=BuildArguments(
213+
target='esp32',
214+
collect_app_info_filename='app_info.txt',
215+
collect_size_info_filename='size_info.txt',
216+
)
217+
)
218+
219+
assert os.path.exists('app_info.txt')
220+
assert os.path.exists('size_info.txt')

0 commit comments

Comments
 (0)