mirror of
https://github.com/platformio/platformio-core.git
synced 2026-01-25 16:32:27 +01:00
83 lines
2.0 KiB
Python
83 lines
2.0 KiB
Python
|
|
# Copyright (c) 2014-present PlatformIO <contact@platformio.org>
|
||
|
|
#
|
||
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
|
# you may not use this file except in compliance with the License.
|
||
|
|
# You may obtain a copy of the License at
|
||
|
|
#
|
||
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
#
|
||
|
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
# See the License for the specific language governing permissions and
|
||
|
|
# limitations under the License.
|
||
|
|
|
||
|
|
import json
|
||
|
|
|
||
|
|
from platformio.project.commands.metadata import project_metadata_cmd
|
||
|
|
|
||
|
|
|
||
|
|
def test_metadata_dump(clirunner, validate_cliresult, tmpdir):
|
||
|
|
tmpdir.join("platformio.ini").write(
|
||
|
|
"""
|
||
|
|
[env:native]
|
||
|
|
platform = native
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
|
||
|
|
component_dir = tmpdir.mkdir("lib").mkdir("component")
|
||
|
|
component_dir.join("library.json").write(
|
||
|
|
"""
|
||
|
|
{
|
||
|
|
"name": "component",
|
||
|
|
"version": "1.0.0"
|
||
|
|
}
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
component_dir.mkdir("include").join("component.h").write(
|
||
|
|
"""
|
||
|
|
#define I_AM_COMPONENT
|
||
|
|
|
||
|
|
void dummy(void);
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
component_dir.mkdir("src").join("component.cpp").write(
|
||
|
|
"""
|
||
|
|
#include <component.h>
|
||
|
|
|
||
|
|
void dummy(void ) {};
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
|
||
|
|
tmpdir.mkdir("src").join("main.c").write(
|
||
|
|
"""
|
||
|
|
#include <component.h>
|
||
|
|
|
||
|
|
#ifndef I_AM_COMPONENT
|
||
|
|
#error "I_AM_COMPONENT"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
int main() {
|
||
|
|
}
|
||
|
|
"""
|
||
|
|
)
|
||
|
|
|
||
|
|
metadata_path = tmpdir.join("metadata.json")
|
||
|
|
result = clirunner.invoke(
|
||
|
|
project_metadata_cmd,
|
||
|
|
[
|
||
|
|
"--project-dir",
|
||
|
|
str(tmpdir),
|
||
|
|
"-e",
|
||
|
|
"native",
|
||
|
|
"--json-output",
|
||
|
|
"--json-output-path",
|
||
|
|
str(metadata_path),
|
||
|
|
],
|
||
|
|
)
|
||
|
|
validate_cliresult(result)
|
||
|
|
with open(str(metadata_path), encoding="utf8") as fp:
|
||
|
|
metadata = json.load(fp)["native"]
|
||
|
|
assert len(metadata["includes"]["build"]) == 3
|
||
|
|
assert len(metadata["includes"]["compatlib"]) == 2
|