/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * ipa_module_test.cpp - Test loading of the VIMC IPA module and verify its info */ #include #include #include "libcamera/internal/ipa_module.h" #include "test.h" using namespace std; using namespace libcamera; class IPAModuleTest : public Test { protected: int runTest(const string &path, const struct IPAModuleInfo &testInfo) { int ret = 0; IPAModule *ll = new IPAModule(path); if (!ll->isValid()) { cerr << "test IPA module " << path << " is invalid" << endl; delete ll; return -1; } const struct IPAModuleInfo &info = ll->info(); if (memcmp(&info, &testInfo, sizeof(info))) { cerr << "IPA module information mismatch: expected:" << endl << "moduleAPIVersion = " << testInfo.moduleAPIVersion << endl << "pipelineVersion = " << testInfo.pipelineVersion << endl << "pipelineName = " << testInfo.pipelineName << endl << "name = " << testInfo.name << "got: " << endl << "moduleAPIVersion = " << info.moduleAPIVersion << endl << "pipelineVersion = " << info.pipelineVersion << endl << "pipelineName = " << info.pipelineName << endl << "name = " << info.name << endl; } delete ll; return ret; } int run() override { int count = 0; const struct IPAModuleInfo testInfo = { IPA_MODULE_API_VERSION, 0, "PipelineHandlerVimc", "vimc", }; count += runTest("src/ipa/vimc/ipa_vimc.so", testInfo); if (count < 0) return TestFail; return TestPass; } }; TEST_REGISTER(IPAModuleTest) '>
blob: 0a1d434e399641bbe8768033542d26cde704f214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# SPDX-License-Identifier: CC0-1.0

subdir('libtest')

subdir('camera')
subdir('controls')
subdir('ipa')
subdir('ipc')
subdir('log')
subdir('media_device')
subdir('pipeline')
subdir('process')
subdir('serialization')
subdir('stream')
subdir('v4l2_compat')
subdir('v4l2_subdevice')
subdir('v4l2_videodevice')

public_tests = [
    ['geometry',                        'geometry.cpp'],
    ['signal',                          'signal.cpp'],
    ['span',                            'span.cpp'],
]

internal_tests = [
    ['byte-stream-buffer',              'byte-stream-buffer.cpp'],
    ['camera-sensor',                   'camera-sensor.cpp'],
    ['event',                           'event.cpp'],
    ['event-dispatcher',                'event-dispatcher.cpp'],
    ['event-thread',                    'event-thread.cpp'],
    ['file',                            'file.cpp'],
    ['file-descriptor',                 'file-descriptor.cpp'],
    ['hotplug-cameras',                 'hotplug-cameras.cpp'],
    ['mapped-buffer',                   'mapped-buffer.cpp'],
    ['message',                         'message.cpp'],
    ['object',                          'object.cpp'],
    ['object-delete',                   'object-delete.cpp'],
    ['object-invoke',                   'object-invoke.cpp'],
    ['pixel-format',                    'pixel-format.cpp'],
    ['signal-threads',                  'signal-threads.cpp'],
    ['threads',                         'threads.cpp'],
    ['timer',                           'timer.cpp'],
    ['timer-thread',                    'timer-thread.cpp'],
    ['utils',                           'utils.cpp'],
]

foreach t : public_tests
    exe = executable(t[0], t[1],
                     dependencies : libcamera_dep,
                     link_with : test_libraries,
                     include_directories : test_includes_public)

    test(t[0], exe)
endforeach

foreach t : internal_tests
    exe = executable(t[0], t[1],
                     dependencies : libcamera_dep,
                     link_with : test_libraries,
                     include_directories : test_includes_internal)

    test(t[0], exe)
endforeach