ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikolay Izhikov <nizhi...@apache.org>
Subject Re: Can't run CPP tests locally on linux machine
Date Fri, 20 Apr 2018 16:28:22 GMT
Hello, Igor.

As far as I can see from the Team City settings the actual command to configure current master
sources is

`./configure --enable-odbc --enable-tests --prefix=%env.CPP_STAGING% CPPFLAGS=-I%env.CPP_STAGING%/include
LDFLAGS=-L%env.CPP_STAGING%/lib`

Can you give me content of CPP_STAGING directory?
I was able to build cpp sources with latest ubuntu boost and latest teamcity_boost [1], teamcity_messages
files [2].
After that I still got error when running

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server
export IGNITE_NATIVE_TEST_CLASSPATH=true
export IGNITE_NATIVE_TEST_CPP_CONFIG_PATH=/home/user/src/ignite/modules/platforms/cpp/core-test/config
./ignite-tests

I see Ignite start messages and after it:

```
[20-04-2018 16:22:51][INFO ][main][IgnitePluginProcessor]   ^-- Copyright(C) Apache Software
Foundation
[20-04-2018 16:22:51][INFO ][main][IgnitePluginProcessor] 
unknown location(0): fatal error: in "BinaryIdentityResolverTestSuite/IdentityEquilityWithoutGuid":
memory access violation at address: 0x00000008: no mapping at fault address
src/binary_identity_resolver_test.cpp(316): last checkpoint: "IdentityEquilityWithoutGuid"
entry.
```

I'm not sure I move to the right direction.
I just want to be able to run CPP tests locally.

[1] https://github.com/JetBrains/teamcity-cpp/blob/master/boost/teamcity_boost.cpp
[2] https://github.com/JetBrains/teamcity-cpp/blob/master/common/teamcity_messages.cpp


В Чт, 19/04/2018 в 14:11 +0300, Nikolay Izhikov пишет:
> Igor.
> 
> Following settings helps to remove some error, but I still can't make all things works.
> Is it right way to get things work?
> 
> ```
> > export LDFLAGS='-L/usr/lib/x86_64-linux-gnu/'
> > export LIBS='-lboost_unit_test_framework'
> > libtoolize && aclocal && autoheader && automake --add-missing
&& autoreconf
> > ./configure --enable-odbc --enable-tests
> > make
> 
> ```
> 
> Now, It seems that compiler can found references to boost functions.
> The only error I see from the output is
> 
> make[3]: вход в каталог «/home/dragon/src/ignite/modules/platforms/cpp/odbc-test»
>   CXXLD    ignite-odbc-tests
> /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
> (.text+0x20): undefined reference to `main'
> collect2: error: ld returned 1 exit status
> 
> I work on Ubuntu linux x64:
> 
> ```
> > uname -a
> 
> Linux host 4.13.0-38-generic #43-Ubuntu SMP Wed Mar 14 15:20:44 UTC 2018 x86_64 x86_64
x86_64 GNU/Linux
> ```
> 
> В Чт, 19/04/2018 в 13:40 +0300, Nikolay Izhikov пишет:
> > Hello, Igor.
> > 
> > Still doesn't work.
> > 
> > I removed files you mentioned and got following error messages:
> > 
> > make[3]: вход в каталог «/home/dragon/src/ignite/modules/platforms/cpp/odbc-test»
> >   CXXLD    ignite-odbc-tests
> > /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':
> > (.text+0x20): undefined reference to `main'
> > src/cursor_test.o: In function `CheckCursorNeedUpdate(ignite::odbc::Cursor&)':
> > /home/dragon/src/ignite/modules/platforms/cpp/odbc-test/src/cursor_test.cpp:77:
undefined reference to `boost::unit_test::unit_test_log_t::set_checkpoint(boost::unit_test::basic_cstring<char
const>,
> > unsigned long, boost::unit_test::basic_cstring<char const>)'
> > 
> > 
> > В Чт, 19/04/2018 в 13:15 +0300, Igor Sapego пишет:
> > > They can be executed locally, and no, you don't need any library.
> > > It is just that Teamcity plugin depends on exact version of Boost,
> > > as I mentioned before. You can disable it if you are going to run
> > > tests locally.
> > > 
> > > For this you should remove from these files
> > > platform/cpp/core-test/Makefile.am and
> > > platform/cpp/odcs-test/Makefile.am
> > > 
> > > following lines:
> > > src/teamcity_messages.cpp \
> > > src/teamcity_boost.cpp \
> > > 
> > > 
> > > Best Regards,
> > > Igor
> > > 
> > > On Wed, Apr 18, 2018 at 6:17 PM, Nikolay Izhikov <nizhikov@apache.org>
> > > wrote:
> > > 
> > > > Igor.
> > > > 
> > > > I tried to comment unexisted header and got following error:
> > > > 
> > > > src/teamcity/teamcity_boost.cpp: In constructor ‘JetBrains::
> > > > TeamcityFormatterRegistrar::TeamcityFormatterRegistrar()’:
> > > > src/teamcity/teamcity_boost.cpp:72:100: error: invalid new-expression
of
> > > > abstract class type ‘JetBrains::TeamcityBoostLogFormatter’
> > > >              boost::unit_test::unit_test_log.set_formatter(new JetBrains::
> > > > TeamcityBoostLogFormatter());
> > > > 
> > > > Do I need some additional team city library for tets?
> > > > Can tests for odbc be executed locally?
> > > > 
> > > > В Ср, 18/04/2018 в 16:29 +0300, Igor Sapego пишет:
> > > > > I think it is better to remove this strong dependency on the
> > > > > exact Boost version at all. I've filed a ticket for that: [1].
> > > > > 
> > > > > [1] - https://issues.apache.org/jira/browse/IGNITE-8310
> > > > > 
> > > > > Best Regards,
> > > > > Igor
> > > > > 
> > > > > On Wed, Apr 18, 2018 at 4:20 PM, Nikolay Izhikov <nizhikov@apache.org>
> > > > 
> > > > wrote:
> > > > > > Hello, Igor.
> > > > > > 
> > > > > > Thanks!
> > > > > > I will try to find boost-1.58.0 distribution and setup it.
> > > > > > 
> > > > > > > 2. Well, it is the old issue that we are working only with
the
> > > > 
> > > > specific> Boost version (1.58.0). You can try commenting out the following
> > > > line:>
> > > > > > 
> > > > > > Should we mention it in DEVNOTES?
> > > > > > Should we add some readme to setup development environment for
CPP
> > > > 
> > > > module?
> > > > > > 
> > > > > > В Ср, 18/04/2018 в 16:11 +0300, Igor Sapego пишет:
> > > > > > > Hi, Nikolay,
> > > > > > > 
> > > > > > > 1. Yes, it's OK;
> > > > > > > 2. Well, it is the old issue that we are working only with
the
> > > > 
> > > > specific
> > > > > > > Boost version (1.58.0). You can try commenting out the
following
> > > > 
> > > > line:
> > > > > > > 
> > > > > > > #include <boost/test/unit_test_suite_impl.hpp>
> > > > > > > 
> > > > > > > in teamcity_boost.cpp files to make it working with your
version.
> > > > > > > 
> > > > > > > Best Regards,
> > > > > > > Igor
> > > > > > > 
> > > > > > > On Wed, Apr 18, 2018 at 3:55 PM, Nikolay Izhikov <
> > > > 
> > > > nizhikov@apache.org>
> > > > > > > wrote:
> > > > > > > 
> > > > > > > > Hello, Igniters.
> > > > > > > > 
> > > > > > > > Is there way to run CPP tests locally on linux machine?
> > > > > > > > 
> > > > > > > > I'm trying to follow DEVNOTES.txt but doesn't get
lucky.
> > > > > > > > 
> > > > > > > > 1. `./configure --enable-odbc --enable-tests` [1]
> > > > > > > > I see
> > > > > > > > 
> > > > > > > > "rm: cannot remove 'core': Is a directory"
> > > > > > > > 
> > > > > > > > Is it OK?
> > > > > > > > 
> > > > > > > > 2. `make` [2]
> > > > > > > > 
> > > > > > > > I got following error:
> > > > > > > > 
> > > > > > > > "src/teamcity/teamcity_boost.cpp:22:10: fatal error:
> > > > > > > > boost/test/unit_test_suite_impl.hpp: Нет такого
файла или каталога
> > > > > > > >  #include <boost/test/unit_test_suite_impl.hpp>"
> > > > > > > > 
> > > > > > > > I've installed boost-dev - `sudo apt-get install libboost-all-dev`
> > > > > > > > But, there is no `unit_test_suite_impl.hpp` in
> > > > 
> > > > /usr/header/boost/test.
> > > > > > > > Without tests it all compiles OK.
> > > > > > > > 
> > > > > > > > What should I do to be able run tests for CPP locally?
> > > > > > > > 
> > > > > > > > [1] https://gist.github.com/nizhikov/
> > > > 
> > > > 8a451b73db17fa05d10992ae50524b7b
> > > > > > > > [2] https://gist.github.com/nizhikov/
> > > > 
> > > > 9d0da202c3e52f3ee1cd5bc2053e1073
Mime
View raw message