diff --git a/testing/fff/.gitignore b/testing/fff/.gitignore new file mode 100644 index 000000000..52fa99adf --- /dev/null +++ b/testing/fff/.gitignore @@ -0,0 +1,2 @@ +/fff +/*.zip diff --git a/testing/fff/CMakeLists.txt b/testing/fff/CMakeLists.txt new file mode 100644 index 000000000..d69a69d79 --- /dev/null +++ b/testing/fff/CMakeLists.txt @@ -0,0 +1,49 @@ +# ############################################################################## +# apps/testing/fff/CMakeLists.txt +# +# Licensed to the Apache Software Foundation (ASF) under one or more contributor +# license agreements. See the NOTICE file distributed with this work for +# additional information regarding copyright ownership. The ASF licenses this +# file to you 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. +# +# ############################################################################## + +if(CONFIG_TESTING_FFF) + + set(FFF_UNPACK ${CMAKE_CURRENT_LIST_DIR}/fff) + set(FFF_URL https://github.com/meekrosoft/fff/archive/refs/heads/master.zip) + + if(NOT EXISTS ${FFF_UNPACK}) + + FetchContent_Declare( + fff_fetch + URL ${FFF_URL} SOURCE_DIR ${FFF_UNPACK} BINARY_DIR + ${CMAKE_BINARY_DIR}/apps/testing/fff/fff + DOWNLOAD_NO_PROGRESS true + TIMEOUT 30) + + FetchContent_GetProperties(fff_fetch) + if(NOT fff_fetch_POPULATED) + FetchContent_Populate(fff_fetch) + endif() + + endif() + + set(INCDIR ${FFF_UNPACK}) + + set_property( + TARGET nuttx + APPEND + PROPERTY NUTTX_INCLUDE_DIRECTORIES ${INCDIR}) + +endif() diff --git a/testing/fff/Kconfig b/testing/fff/Kconfig new file mode 100644 index 000000000..e5e897c38 --- /dev/null +++ b/testing/fff/Kconfig @@ -0,0 +1,10 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +config TESTING_FFF + tristate "Enable FakeFunctionFramework" + default n + ---help--- + Enable FakeFunctionFramework diff --git a/testing/fff/Make.defs b/testing/fff/Make.defs new file mode 100644 index 000000000..64be55f8a --- /dev/null +++ b/testing/fff/Make.defs @@ -0,0 +1,25 @@ +############################################################################ +# apps/testing/fff/Make.defs +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you 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. +# +############################################################################ + +ifneq ($(CONFIG_TESTING_FFF),) +CONFIGURED_APPS += $(APPDIR)/testing/fff +CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/testing/fff/fff +CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/testing/fff/fff +endif diff --git a/testing/fff/Makefile b/testing/fff/Makefile new file mode 100644 index 000000000..6f1686d49 --- /dev/null +++ b/testing/fff/Makefile @@ -0,0 +1,38 @@ +############################################################################ +# apps/testing/fff/Makefile +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you 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. +# +############################################################################ + +include $(APPDIR)/Make.defs + +# Download and unpack tarball if no git repo found +ifeq ($(wildcard fff/.git),) +fff.zip: + $(Q) curl -L https://github.com/meekrosoft/fff/archive/refs/heads/master.zip -o fff.zip + $(Q) unzip -o fff.zip + $(Q) mv fff-master fff + +context:: fff.zip + +distclean:: + $(call DELDIR, fff) + $(call DELFILE, fff.zip) + +endif + +include $(APPDIR)/Application.mk