tests: introduce virfirewallmock

This will allow us to run tests using firewall on hosts where the mocked
binaries are not available/installed instead of skipping these tests.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Pavel Hrdina 2021-04-14 23:52:14 +02:00
parent 25a8c0ef38
commit e938ea5062
3 changed files with 37 additions and 1 deletions

View File

@ -184,7 +184,8 @@ int virFileResolveAllLinks(const char *linkpath,
int virFileIsLink(const char *linkpath)
ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
char *virFindFileInPath(const char *file);
char *virFindFileInPath(const char *file)
G_GNUC_NO_INLINE;
char *virFileFindResource(const char *filename,
const char *builddir,

View File

@ -60,6 +60,7 @@ mock_libs = [
{ 'name': 'shunload', 'sources': [ 'shunloadhelper.c' ] },
{ 'name': 'vircgroupmock' },
{ 'name': 'virfilecachemock' },
{ 'name': 'virfirewallmock' },
{ 'name': 'virgdbusmock' },
{ 'name': 'virhostcpumock' },
{ 'name': 'virhostdevmock' },

34
tests/virfirewallmock.c Normal file
View File

@ -0,0 +1,34 @@
/*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#include "internal.h"
#include "virfile.h"
char *
virFindFileInPath(const char *file)
{
if (file &&
(g_strrstr(file, "ebtables") ||
g_strrstr(file, "iptables") ||
g_strrstr(file, "ip6tables"))) {
return g_strdup(file);
}
/* We should not need any other binaries so return NULL. */
return NULL;
}