#Copyright 2018-present Open Networking Foundation
#
#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.

########################################################################

# This Makefile provides hook for Jenkins to invoke the test target for
# CI integration.
# The main Makefile for product compilation is available at
# agent/Makefile.in. Please see README.md for more details.

# The unit tests require certain pre-requisite software for compilation
# and execution. Please see agent/test/README.md for more details.

.DEFAULT_GOAL := test

prereqs-system:
	cd agent/test && ./configure
	make -C agent/test prereqs-system

prereqs-local:
	cd agent/test && ./configure
	make -C agent/test prereqs-local

# Invoke unit-tests
test:
	cd agent/test && ./configure
	make -C agent/test test
