Improve C API. Add tests.

1. Add simple C API test in C++ program.
2. Add simple C API test in C program.
3. Fix including capi.h in C++ files.
This commit is contained in:
Egor Pugin 2021-01-02 03:57:25 +03:00
parent 6740e88549
commit fd8907471c
5 changed files with 51 additions and 11 deletions

View File

@ -20,6 +20,14 @@
#include "export.h"
#ifdef __cplusplus
#include <tesseract/baseapi.h>
#include <tesseract/ocrclass.h>
#include <tesseract/pageiterator.h>
#include <tesseract/renderer.h>
#include <tesseract/resultiterator.h>
#endif
#include <stdbool.h>
#include <stdio.h>

View File

@ -15,16 +15,6 @@
//
///////////////////////////////////////////////////////////////////////
#include <tesseract/baseapi.h>
#include <tesseract/ocrclass.h>
#include <tesseract/pageiterator.h>
#include <tesseract/renderer.h>
#include <tesseract/resultiterator.h>
// before capi.h
using namespace tesseract;
// after public headers
#include <tesseract/capi.h>
#include <cstring> // for strdup

4
sw.cpp
View File

@ -198,7 +198,7 @@ void build(Solution &s)
{
auto &t = test.addTarget<ExecutableTarget>(name);
t += cppstd;
t += path("unittest/" + name + "_test.cc");
t += FileRegex("unittest", name + "_test.*", false);
t += "SW_TESTING"_def;
@ -232,6 +232,8 @@ void build(Solution &s)
"baseapi",
"baseapi_thread",
"bitvector",
"capiexample",
"capiexample_c",
"cleanapi",
"colpartition",
"commandlineflags",

View File

@ -0,0 +1,21 @@
///////////////////////////////////////////////////////////////////////
// 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.
///////////////////////////////////////////////////////////////////////
// Verifies that C is able to include capi header.
#include <tesseract/capi.h>
// Verifies that the libtesseract library has C API symbols.
int main()
{
printf("%s\n", TessVersion());
return 0;
}

View File

@ -0,0 +1,19 @@
///////////////////////////////////////////////////////////////////////
// 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.
///////////////////////////////////////////////////////////////////////
// Verifies that C++ is able to include capi header.
#include <tesseract/capi.h>
#include <gtest/gtest.h>
// Verifies that the libtesseract library has C API symbols.
TEST(C, VersionTest) { TessVersion(); }