Well, how many functions and variables that are marked private those functions try to access?
We can either have the ~8 or so functions public, or upgrade the other functions from private to protected - which actually makes quite a lot of sense. Itamar. On 21/8/2010 10:43 PM, Kostka Bořivoj wrote: > Itamar, > > I tried to solve this by subclassing, but it is probably impossible. Eg. > method getNumBufferedDocuments() uses > docWriter, which is declared private in IndexWriter, so I cannot access it. > I can't see any solution except declaring testing methods public (or at least > protected) in original IndexWriter > > Borek > > >> -----Original Message----- >> From: Kostka Bořivoj [mailto:kos...@tovek.cz] >> Sent: Tuesday, August 17, 2010 3:39 PM >> To: clucene-developers@lists.sourceforge.net >> Subject: Re: [CLucene-dev] IndexWriter's private methods for tests >> >> OK, I understand your idea now. The problem is only segmentsInfos, so I will >> change it >> to exported (it can be changed in the future, if we decide so). >> >> If we hit more/many exporting issues we could consider special DLL build >> with more >> exports for testing purposes rather than link statically. >> Anyway, tt will be best, if we have both static libs and dll build for >> cl_test. >> >> Borek >> >> >>> -----Original Message----- >>> From: Itamar Syn-Hershko [mailto:ita...@code972.com] >>> Sent: Tuesday, August 17, 2010 1:34 PM >>> To: clucene-developers@lists.sourceforge.net >>> Subject: Re: [CLucene-dev] IndexWriter's private methods for tests >>> >>> We definitely need to port all tests. >>> >>> What I meant with subclassing is to remove the functions that aren't >>> used currently, and have a IndexWriterForTests class in cl_test which >>> will implement those functions instead. From what I recall none of these >>> functions are used anywhere, so removing them from the core isn't an >>> issue. If any of them is indeed used, well, since it is used for things >>> other than testing we do need it there (and as such it should be made >>> protected / public, based on where it is being called from in tests). >>> >>> If you'll hit many exporting issues with cl_test you can make cl_test >>> link statically to cl_core (and also cl_shared). That is better than >>> exporting new stuff that is better left internal. >>> >>> Itamar. >>> >>> On 17/8/2010 11:35 AM, Kostka Bořivoj wrote: >>> >>>> Itamar, >>>> >>>> Perhaps I'm wrong, but I think subclassing isn't (easy) solution: >>>> >>>> Related IndexWriter's methods are private, not protected, so I cannot call >>>> them >>>> >> even >> >>> from subclass. >>> >>>> I also cannot copy the code, as segmentsInfos methods are used inside, and >>>> >>> segmentInfos class is not exported so I'm not able to link. >>> >>>> Maybe protected will be good trade-off(?) >>>> >>>> If methods remain private, I have to remove a lot of checks from tests. I >>>> can do that, >>>> >>> of course, but I'm not sure if such test are still usefull. >>> >>>> And the last point - if methods remain private, we should simply remove >>>> them as a >>>> >>> whole, because it is just a chunk of dead code. >>> >>>> Borek >>>> >>>> >>>> >>>>> -----Original Message----- >>>>> From: Itamar Syn-Hershko [mailto:ita...@code972.com] >>>>> Sent: Monday, August 16, 2010 10:47 PM >>>>> To: clucene-developers@lists.sourceforge.net >>>>> Subject: Re: [CLucene-dev] IndexWriter's private methods for tests >>>>> >>>>> Borek, >>>>> >>>>> I had answered this in Jun 24th [1][2]. We pretty much agreed >>>>> "friend"ing won't do much good. >>>>> >>>>> I'd still prefer exposing this code only in the test suite and not in >>>>> core, since it is only being used there - this can be achieved easily by >>>>> subclassing. No reason to have them in core if all they are used for is >>>>> tests, and I wouldn't want to add more compile switches... >>>>> >>>>> Itamar. >>>>> >>>>> [1] >>>>> http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/3484 >>>>> [2] The whole discussion: >>>>> http://comments.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/3472 >>>>> >>>>> On 16/8/2010 4:00 PM, Kostka Bořivoj wrote: >>>>> >>>>> >>>>>> In tests I'm porting following set of methods from IndexWriter is used: >>>>>> >>>>>> //for test purposes >>>>>> int32_t getDocCount(int32_t i); >>>>>> int32_t getNumBufferedDocuments(); >>>>>> int32_t getSegmentCount(); >>>>>> int32_t getBufferedDeleteTermsSize(); >>>>>> int32_t getNumBufferedDeleteTerms(); >>>>>> SegmentInfo* newestSegment(); >>>>>> >>>>>> The problem is all methods are marked private. In JLucene methods are >>>>>> without >>>>>> >>>>>> >>>>> public/private definition, >>>>> >>>>> >>>>>> so they are accessible from classes in same package (and test are in same >>>>>> >>>>>> >>>>> package). >>>>> >>>>> >>>>>> Such thing is not possible in C++, so I think methods should be changed >>>>>> to >>>>>> >> public. >> >>>>>> >>>>> Otherwise tests cannot >>>>> >>>>> >>>>>> be ported. >>>>>> >>>>>> Any other opinion? >>>>>> >>>>>> Borek >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> This SF.net email is sponsored by >>>>>> >>>>>> Make an app they can't live without >>>>>> Enter the BlackBerry Developer Challenge >>>>>> http://p.sf.net/sfu/RIM-dev2dev >>>>>> _______________________________________________ >>>>>> CLucene-developers mailing list >>>>>> CLucene-developers@lists.sourceforge.net >>>>>> https://lists.sourceforge.net/lists/listinfo/clucene-developers >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> ------------------------------------------------------------------------------ >>>>> This SF.net email is sponsored by >>>>> >>>>> Make an app they can't live without >>>>> Enter the BlackBerry Developer Challenge >>>>> http://p.sf.net/sfu/RIM-dev2dev >>>>> _______________________________________________ >>>>> CLucene-developers mailing list >>>>> CLucene-developers@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/clucene-developers >>>>> >>>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by >>>> >>>> Make an app they can't live without >>>> Enter the BlackBerry Developer Challenge >>>> http://p.sf.net/sfu/RIM-dev2dev >>>> _______________________________________________ >>>> CLucene-developers mailing list >>>> CLucene-developers@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/clucene-developers >>>> >>>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by >>> >>> Make an app they can't live without >>> Enter the BlackBerry Developer Challenge >>> http://p.sf.net/sfu/RIM-dev2dev >>> _______________________________________________ >>> CLucene-developers mailing list >>> CLucene-developers@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/clucene-developers >>> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by >> >> Make an app they can't live without >> Enter the BlackBerry Developer Challenge >> http://p.sf.net/sfu/RIM-dev2dev >> _______________________________________________ >> CLucene-developers mailing list >> CLucene-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/clucene-developers >> > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > CLucene-developers mailing list > CLucene-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/clucene-developers > ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ CLucene-developers mailing list CLucene-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/clucene-developers