Skip to content

Commit 13d5d5e

Browse files
committed
Removed hardcoded build.warn_data_percentage in build.options file
Also fixed the "low memory" warning printer.
1 parent 47a01ac commit 13d5d5e

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

internal/arduino/builder/builder.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ type Builder struct {
5959
// Parallel processes
6060
jobs int
6161

62-
// Custom build properties defined by user (line by line as "key=value" pairs)
63-
customBuildProperties []string
64-
6562
// core related
6663
coreBuildCachePath *paths.Path
6764
extraCoreBuildCachePaths paths.PathList
@@ -171,7 +168,6 @@ func NewBuilder(
171168
return nil, fmt.Errorf("invalid build properties: %w", err)
172169
}
173170
buildProperties.Merge(customBuildProperties)
174-
customBuildPropertiesArgs := append(requestBuildProperties, "build.warn_data_percentage=75")
175171

176172
sketchBuildPath, err := buildPath.Join("sketch").Abs()
177173
if err != nil {
@@ -213,7 +209,6 @@ func NewBuilder(
213209
coreBuildPath: coreBuildPath,
214210
librariesBuildPath: librariesBuildPath,
215211
jobs: jobs,
216-
customBuildProperties: customBuildPropertiesArgs,
217212
coreBuildCachePath: coreBuildCachePath,
218213
extraCoreBuildCachePaths: extraCoreBuildCachePaths,
219214
logger: logger,
@@ -231,7 +226,7 @@ func NewBuilder(
231226
hardwareDirs, librariesDirs,
232227
builtInLibrariesDirs, buildPath,
233228
sk,
234-
customBuildPropertiesArgs,
229+
requestBuildProperties,
235230
fqbn,
236231
clean,
237232
buildProperties.Get("compiler.optimization_flags"),

internal/arduino/builder/sizer.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,15 +196,17 @@ func (b *Builder) checkSize() (ExecutablesFileSections, error) {
196196
return executableSectionsSize, errors.New(i18n.Tr("data section exceeds available space in board"))
197197
}
198198

199+
warnDataPercentage := 75
199200
if w := properties.Get("build.warn_data_percentage"); w != "" {
200-
warnDataPercentage, err := strconv.Atoi(w)
201-
if err != nil {
202-
return executableSectionsSize, err
203-
}
204-
if maxDataSize > 0 && dataSize > maxDataSize*warnDataPercentage/100 {
205-
b.logger.Warn(i18n.Tr("Low memory available, stability problems may occur."))
201+
if p, err := strconv.Atoi(w); err == nil {
202+
warnDataPercentage = p
203+
} else {
204+
b.logger.Warn(i18n.Tr("Invalid value for build.warn_data_percentage: %s", w))
206205
}
207206
}
207+
if maxDataSize > 0 && dataSize > maxDataSize*warnDataPercentage/100 {
208+
b.logger.Warn(i18n.Tr("Low memory available, stability problems may occur."))
209+
}
208210

209211
return executableSectionsSize, nil
210212
}

internal/integrationtest/compile_4/compile_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,15 +1045,14 @@ func TestBuildOptionsFile(t *testing.T) {
10451045
"sketchLocation"
10461046
]`)
10471047
requirejson.Query(t, buildOptionsBytes, ".fqbn", `"arduino:avr:uno"`)
1048-
requirejson.Query(t, buildOptionsBytes, ".customBuildProperties", `"build.warn_data_percentage=75"`)
10491048

10501049
// Recompiling a second time should provide the same result
10511050
_, _, err = cli.Run("compile", "-b", "arduino:avr:uno", "--build-path", buildPath.String(), sketchPath.String())
10521051
require.NoError(t, err)
10531052

1054-
buildOptionsBytes, err = buildPath.Join("build.options.json").ReadFile()
1053+
buildOptionsBytes2, err := buildPath.Join("build.options.json").ReadFile()
10551054
require.NoError(t, err)
1056-
requirejson.Query(t, buildOptionsBytes, ".customBuildProperties", `"build.warn_data_percentage=75"`)
1055+
require.Equal(t, buildOptionsBytes, buildOptionsBytes2)
10571056

10581057
// Recompiling with a new build option must produce a new `build.options.json`
10591058
_, _, err = cli.Run("compile", "-b", "arduino:avr:uno", "--build-path", buildPath.String(),
@@ -1062,7 +1061,7 @@ func TestBuildOptionsFile(t *testing.T) {
10621061
)
10631062
require.NoError(t, err)
10641063

1065-
buildOptionsBytes, err = buildPath.Join("build.options.json").ReadFile()
1064+
buildOptionsBytes3, err := buildPath.Join("build.options.json").ReadFile()
10661065
require.NoError(t, err)
1067-
requirejson.Query(t, buildOptionsBytes, ".customBuildProperties", `"custom=prop,build.warn_data_percentage=75"`)
1066+
require.NotEqual(t, buildOptionsBytes, buildOptionsBytes3)
10681067
}

0 commit comments

Comments
 (0)