>
> One other common theme is the ID format....In VertexTest there's a number
> of different ID types being tested, including Long, String, UUID. Do we
> need to add one for Orient?


The test suite is for handling generic cases.  I don't thinking adding an
id assertion for those graphs that have custom ids is helpful as I'd have
to delegate the assertion of that id back to the graph (so why not just let
the graph do it's own assertions of such things?).  Titan has a similar
issue with its Edge id (RelationIdentifier) and I think we have gotten
reasonably good coverage without testing over it explicitly.  The TinkerPop
Test Suite is meant to enforce behavior, not to ensure a specific
implementations correctness.  It is up to each implementation to fill gaps
in coverage left by the suite - note that even Neo4j/TinkerGraph have such
tests.

Now as far as "identifiers" and compliance with TinkerPop goes, it is very
important that you properly implement the IoRegistry properly as OrientDB
does have its Rid class for the identifier and it needs to serialize
properly to pass a number of tests, be compliance with Gremlin Server, etc.:

http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/#io-implementations

I suggest you have a look at Titan's (very simple):

https://github.com/thinkaurelius/titan/blob/0.9.0-M2/titan-core/src/main/java/com/thinkaurelius/titan/graphdb/tinkerpop/TitanIoRegistry.java

Your features still look off to me btw:

https://github.com/mpollmeier/orientdb-gremlin/blob/master/src/main/java/org/apache/tinkerpop/gremlin/orientdb/ODBFeatures.java#L61

If the id for OrientDB uses a Rid class internally to represent the id then
that should be true and the supportsNumericIds, supportsStringIds,
supportsUuidIds and supportsAnyIds should be false.  OrientDB should also
return false for supportsUserSuppliedIds.  Definitely take a read through
the javadoc of Features and get ALL of the features set properly based on
what you think you support in your code (not what OrientDB could support)
and then re-run your tests - you'll be chasing bugs that aren't there for a
long time if you don't get these straight.






On Thu, Jul 2, 2015 at 9:13 PM, Michael Pollmeier <
[email protected]> wrote:

> Good hint, I've just implemented Features to clarify what's supported and
> what not, now I have 239 skipped, 45 failures, 325 errors and 145
> successful tests. Better, but lot's of work left ;)
>
> The problems described in the other mail (re Threadlocal) remain - would
> be good to get your thoughts on.
>
> One other common theme is the ID format. Orient's IDs are in the format
> `<cluster-id>:<cluster-position>`, e.g. `#9:5000`. In VertexTest there's a
> number of different ID types being tested, including Long, String, UUID. Do
> we need to add one for Orient?
>
>
> On 07/03/2015 11:42 AM, Stephen Mallette wrote:
>
>> Well - there might be calls to tryCommit(), but there's a feature check
>> there:
>>
>>
>> https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java#L190
>>
>> so if you make supportsTransactions() return "false" at least until you
>> get
>> that working wont' that allow the test to proceed without you having to
>> fake an implementation?
>>
>> On Thu, Jul 2, 2015 at 5:59 PM, Michael Pollmeier <
>> [email protected]> wrote:
>>
>>  There might be only one test that verifies correct transactional
>>> behaviour, however nearly all tests come past
>>> `AbstractGremlinTest.tryCommit` which calls `g.tx().commit()`, which in
>>> my
>>> case threw an Exception. I just changed that for a dummy
>>> OrientTransaction
>>> which doesn't do anything and I get a bit further.
>>>
>>>
>>> On 07/02/2015 11:31 PM, Stephen Mallette wrote:
>>>
>>>  There is really just one test case that has tests for transactions
>>>> (TransactionTest), so if you have a lot of red, it's likely related to
>>>> other things. I think that one of the fastest ways to get rid of the
>>>> failing tests would be to work on the making sure that your features are
>>>> defined properly.  If you don't support transactions yet, then turn that
>>>> feature "off" for now until you do.  That will make a lot of the tests
>>>> go
>>>> from failing to ignored, thus saving you from chasing broken tests that
>>>> you
>>>> don't intend to support anyway.
>>>>
>>>> On Wed, Jul 1, 2015 at 10:19 PM, Michael Pollmeier <
>>>> [email protected]> wrote:
>>>>
>>>>   I just put the structure in place so that it executes the
>>>>
>>>>> `StructureStandardSuite`.
>>>>>
>>>>> The tests all fail at the moment though, as there's a number of areas
>>>>> that
>>>>> haven't been implemented yet, including Transaction handling which
>>>>> seems
>>>>> to
>>>>> be a prerequisite for the majority of the tests. It's still a POC I
>>>>> suppose
>>>>> ;)
>>>>>
>>>>>
>>>>>
>>>>> On 07/01/2015 10:00 PM, Stephen Mallette wrote:
>>>>>
>>>>>   I know you're just at a POC stage, but do you intend to hook up the
>>>>>
>>>>>> various
>>>>>> Gremlin Test Suites any time soon?
>>>>>>
>>>>>> On Tue, Jun 30, 2015 at 10:01 PM, Michael Pollmeier <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>    If you want to spread the word please retweet:
>>>>>>
>>>>>>  https://twitter.com/pollmeier/status/616063761070206976
>>>>>>>
>>>>>>>
>>>>>>> On 07/01/2015 01:54 PM, Michael Pollmeier wrote:
>>>>>>>
>>>>>>>    Good news: I just released a first usable version of the OrientDB
>>>>>>> TP3
>>>>>>>
>>>>>>>  driver [1] and added an example project [2] which uses gremlin-scala
>>>>>>>> with OrientDB.
>>>>>>>>
>>>>>>>> Currently supported are vertex and edge creation and lookups,
>>>>>>>> properties
>>>>>>>> and traversals. Everything you need for simple use cases.
>>>>>>>>
>>>>>>>> It's all released to maven central, so you can execute the example
>>>>>>>> project [2] or build your own. I'd really appreciate your feedback.
>>>>>>>>
>>>>>>>> Cheers, Michael
>>>>>>>> [1] https://github.com/mpollmeier/orientdb-gremlin
>>>>>>>> [2] https://github.com/mpollmeier/gremlin-scala-examples
>>>>>>>>
>>>>>>>>
>>>>>>>> On 06/29/2015 09:35 AM, Michael Pollmeier wrote:
>>>>>>>>
>>>>>>>>    Currently I'm working on supporting edges and things like
>>>>>>>>
>>>>>>>>  vertex.edges(). With that we should be able to get traversals
>>>>>>>>> going.
>>>>>>>>>
>>>>>>>>> Here's an incomplete list of other todos:
>>>>>>>>>       OrientGraphNoTx
>>>>>>>>>       index support
>>>>>>>>>       multi thread support: always do the setActive stuff?
>>>>>>>>>       cluster name support, e.g. on addVertex
>>>>>>>>>       tests: use the Standard TP3 testsuite. I run all my tests
>>>>>>>>> from a
>>>>>>>>> different repo using Gremlin-Scala.
>>>>>>>>>       go through remaining NotImplementedExceptions and TODOs in
>>>>>>>>> code
>>>>>>>>>
>>>>>>>>> Michael
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 06/27/2015 02:52 AM, Luca Garulli wrote:
>>>>>>>>>
>>>>>>>>>    Sorry to didn't see it before. What are the missing parts of
>>>>>>>>> OrientDB
>>>>>>>>>
>>>>>>>>>  BP3
>>>>>>>>>> implementation?
>>>>>>>>>>
>>>>>>>>>> Lvc@
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>
>>>>
>>

Reply via email to