Hey all,
You may consider this a bit of a pointless update, it's also going to
be a bit rambly :-)
I haven't got very far into investigating how to automatically test
two running instances of Saros-I. I seem to have stumbled on to the
same problem as Holger in that I can't even get an empty test case to
run because of dependency conflicts around PicoContainer[0]. I'm not
sure how to solve this problem; it looks like both IntelliJ and the
Saros code needs this library on the classpath, so I doubt there's a
way around it in configuration. Only two options spring to mind at
this point: 1) go back a major version of Pico Container in Saros; 2)
or embed the correct version within a Saros namespace.
The first option has drawbacks in that you're coupling your
dependencies in the core to whatever IntelliJ needs to use. The
drawback to the second option is that it's necessary to find a
suitable way to embed the library, there are a couple of good
libraries for doing this (e.g. ProGuard, JarJar, etc) but it adds
complexity to the build process and bloats your dependencies. That
approach implies that the Saros-I plugin is going to depend on a
Saros-Core jar, but I assume that's on the roadmap anyway.
All this pain is before even getting on to the problem of running
multiple instances manually. Because of IntelliJ's fascination with
reusing the same process, it's actually quite difficult to run two
instances of the same IDEA on the same machine at the same time. I
think with some sneaky tricks this will be possible, so I'm going to
keep trying this. Being able to manually test the real communication
between two real instances is better than nothing.
Cheers,
Graham
[0] http://devnet.jetbrains.com/message/5520275#5520275
On 26 July 2014 14:07, Graham Allan <grundlefl...@gmail.com
<mailto:grundlefl...@gmail.com>> wrote:
Looks like this will be a fun one to investigate, lots of gotchas :-)
Will hopefully have something to report today or tomorrow.
On 23 Jul 2014 14:57, "Stefan Rossbach" <srossb...@arcor.de
<mailto:srossb...@arcor.de>> wrote:
Graham should also be aware that multiple instances on the same PC
requires *virtual* keyboards, i.e
simulating keyboard events with e.g
http://msdn.microsoft.com/en-us/library/ms646310%28v=vs.85%29.aspx
(I do
not know if UI4J is
using this) will not work when simultaneous writing should be
performed.
See:
http://download.eclipse.org/technology/swtbot/helios/dev-build/apidocs/org/eclipse/swtbot/swt/finder/keyboard/KeyboardFactory.html#getMockKeyboard%28org.eclipse.swt.widgets.Widget,%20org.hamcrest.SelfDescribing%29
On 23.07.2014 15:46, Holger Schmeisky wrote:
> Hi Graham
>
> did you manage to start two Saros/I instances already? I
guess that's
> necessary for writing the test :-)
>
> I found out a mildly inconvenient way that I'd like to
document on the
> homepage, but if you (or anyone else) has found a better one
I am glad
> to hear:
>
> http://devnet.jetbrains.com/message/5520367#5520367
>
> Regards,
> Holger
>
> Holger Schmeisky; holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>
> Takustraße 9, Room 008, Freie Universität Berlin, 14195 Berlin
> +49 176 64146306 <tel:%2B49%20176%2064146306>
>
> Am 22.07.2014 14:40, schrieb Graham Allan:
>> Great! Thanks.
>>
>> I will look into the references provided, and investigate
how we could
>> have the equivalent for IntelliJ.
>>
>> Cheers,
>> Graham
>>
>>
>> On 22 July 2014 12:15, Stefan Rossbach <srossb...@arcor.de
<mailto:srossb...@arcor.de>
>> <mailto:srossb...@arcor.de <mailto:srossb...@arcor.de>>> wrote:
>>
>> Hi Graham,
>>
>> it is actually not that hard (STF = Saros Test
Framework, i.e our
>> E2E Tests)
>>
>> SWTBot = UISpec4J => Fire Events, Read widget data
>>
>> The main entry point can be found in:
>>
>> de.fu_berlin.inf.dpp.stf.server.STFController
>>
>> There is also a small client package which contains an
STFTestcase
>> class which you should inherit from when writing test
cases.
>>
>> There is also a STF developer doc on the Saros
Webpage, but I am
>> quite sure that it is outdated.
>>
>> This framwork consists of so called *Bots*.
>>
>> The *RemoteBot* only consists of class wrappers for
the SWTBot
>> Framework.
>>
>> The *SuperBot* is just a accumulation of classes that
perform very
>> special tasks (which also could be done with
RemoteBot). Mainly
>> written to shorten
>> Test cases to avoid C&P between test classes.
>>
>> Due to the design there is one nasty restriction
(mentioned in the
>> Doc). You cannot write test cases as you would like.
>>
>> @Franz
>> I spend over 5 minutes to find the manual ? Where did
you put the
>> link ?!
>>
>>
>> I attached it for now (found in the darkest depths of
my HDDs).
>>
>> STF Vids:
>>
>> http://saros-build.imp.fu-berlin.de/test/stf_self_test.avi
(from 2011)
>>
>> http://saros-build.imp.fu-berlin.de/test/stf_xvid.avi (from
2013,
>> mainly how to write STF test cases)
>>
>>
>>
>>
>> On 22.07.2014 12:53, Graham Allan wrote:
>>> Is there any documentation on how STF does the
RMI? I would
>>> like to look into that and test it with IntelliJ,
before we
>>> start with such a big venture :-)
>>> Graham, how much would you like to dig into that?
(We can also
>>> talk directly on that, if you'd like to)
>>>
>>>
>>> Yup, I'd be happy to do that. I may need some to get some
>>> background info on how the Eclipse testing works, I'm
unfamiliar
>>> with SWTBot, etc. What would you recommend for
figuring that out?
>>> Do you think it's understandable by digging into the
Saros code?
>>> Maybe a chat over Skype/Hangout/etc?
>>>
>>> Also, I kept up with most of the acronyms, but you
lost me on STF,
>>> what is that?
>>>
>>> Cheers,
>>> Graham
>>>
>>>
>>> On 21 July 2014 15:53, Stefan Rossbach
<srossb...@arcor.de <mailto:srossb...@arcor.de>
>>> <mailto:srossb...@arcor.de
<mailto:srossb...@arcor.de>>> wrote:
>>>
>>> The RemoteBot is just a RMI Wrapper around the SWTBot
>>> Framework. No magic, nothing.
>>>
>>> IMyFooWrapper extends Remote ....
>>>
>>> MyFooWrapperImpl implements IMyFooWrapper ...
>>>
>>> private ... delegate
>>>
>>> public void foo() { delegate.foo() }
>>>
>>> Just take a look at the STFController class.
>>>
>>> As for you test case. Your class path is not set
correctly and
>>> if Headless tests does not support multiple
classloaders you
>>> are out of luck.
>>>
>>>
>>> On 21.07.2014 15 <tel:21.07.2014%2015>
<tel:21.07.2014%2015>:17, Holger Schmeisky wrote:
>>>
>>> Is there any documentation on how STF does
the RMI? I
>>> would like to look into that and test it with
IntelliJ,
>>> before we start with such a big venture :-)
>>>
>>> Graham, how much would you like to dig into
that? (We can
>>> also talk directly on that, if you'd like to)
>>>
>>> Apart from the UI Testing, I am trying to set
up tests for
>>> the file handling and having problems:
>>>
>>> http://devnet.jetbrains.com/thread/455971
>>>
>>> Any help is appreciated :-)
>>>
>>> Regards,
>>> Holger
>>>
>>> Holger Schmeisky; holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>
>>> Takustraße 9, Room 008, Freie Universität
Berlin, 14195 Berlin
>>> +49 176 64146306 <tel:%2B49%20176%2064146306>
<tel:%2B49%20176%2064146306>
>>>
>>> Am 21.07.2014 14 <tel:21.07.2014%2014>
<tel:21.07.2014%2014>:02, schrieb Stefan
>>> Rossbach:
>>>
>>> Hi again,
>>>
>>> I just looked at the UISpec4J Framework
and it seems
>>> that this is the
>>> *equivalent* to SWTBot.
>>>
>>> So my suggestion would be to write a
script that will
>>> generate code so
>>> that those methods can be accessed via
>>> RMI. You can look at the RemoteBot of the
STF.
>>> Although this was purely
>>> written by hand (Please do not ask my why
...)
>>> it may be a good start.
>>>
>>>
>>> On 21.07.2014 13 <tel:21.07.2014%2013>
<tel:21.07.2014%2013>:51, Stefan
>>> Rossbach wrote:
>>>
>>> On 21.07.2014 13
<tel:21.07.2014%2013> <tel:21.07.2014%2013>:40, Holger
>>> Schmeisky wrote:
>>>
>>> Hi,
>>>
>>> thanks for looking into this. My
2 cents:
>>>
>>> - they try to stick to
testing the
>>> 'model', using headless
>>> builds. If
>>> there's already a separated
'core' of
>>> Saros, which can be tested in
>>> isolation, and there's only
really
>>> plumbing left to do, that may
not be
>>> applicable for the Saros-I code.
>>>
>>> Unfortunately the Saros-I code
does more than
>>> plumbing - more like
>>> half of the work, but with a lot of
>>> duplication. But well, that makes
>>> it applicable for headless tests
and I think
>>> thats a good path :-)
>>>
>>> There are two main components: The
Editor Stuff
>>> and the File Stuff which
>>> cannot be part of the core. The rest
should be
>>> mostly *cosmetic* stuff
>>> (beside the Watchdog).
>>>
>>> Would it be worth
investigating one of
>>> these libraries to see if it's
>>> possible to spin up an
IntelliJ instance
>>> in a JUnit test?
>>>
>>> Yep, it's Swing. In Saros/E we
fire up 2
>>> Eclipse instances that run
>>> the Saros version and execute
actions on them
>>> via RMI. In IDEA I had
>>> no luck starting two IDEA
instances from one
>>> instance
>>>
(http://devnet.jetbrains.com/message/5520017#5520017),
>>> so I suspended
>>> that thought for the moment.
>>>
>>> We actually fire up 4 instances (we
could even
>>> fire up more). We do not
>>> really execute "actions" (ok at least
a few) with
>>> RMI. Most RMI calls
>>> delegates to the SWTBot Framework so
we really
>>> simulate user input (sorry if you
meant this with
>>> actions).
>>>
>>> Having an "OK it still works"
integration test
>>> would be really
>>> helpful, but I am a bit
intimidated by the
>>> setup work this would
>>> require (given the instances
issues and the
>>> whole hassle of UI tests).
>>>
>>> A lower level where the tests
would already
>>> make sense would be the
>>> directory creation / file
handling level
>>> because I am having issues
>>> there at the moment.
>>>
>>> If you want to use headless tests
make sure IDEA
>>> is not using SWING. The
>>> CI Server is running without a
display (for good
>>> reasons).
>>>
>>> Regards,
>>> Holger
>>>
>>> Kind regards,
>>> Graham
>>>
>>>
>>>
>>>
>>> On 21 July 2014 11:24, Stefan
Rossbach
>>> <srossb...@arcor.de
<mailto:srossb...@arcor.de>
>>> <mailto:srossb...@arcor.de <mailto:srossb...@arcor.de>>
>>> <mailto:srossb...@arcor.de <mailto:srossb...@arcor.de>
>>> <mailto:srossb...@arcor.de <mailto:srossb...@arcor.de>>>>
wrote:
>>>
>>> I would suggest a
similar framework
>>> like SWTBot for AWT(Swing)
>>> applications which can be accessed
>>> with RMI
>>> as we do with our STF.
>>>
>>>
>>> On 21.07.2014 11
<tel:21.07.2014%2011>
>>> <tel:21.07.2014%2011>
>>> <tel:21.07.2014%2011>:28, Holger Schmeisky
>>> wrote:
>>>
>>> Hi Graham,
>>>
>>> I am very glad to
hear from you!
>>>
>>> Franz already told me about you
>>> and I read your quite
>>> enthusiastic blog
>>> post about Saros for Eclipse and
>>> how it compares to other
>>> solutions :-)
>>>
>>> There probably will be too much
>>> churn in the development
>>> branch
>>> for it
>>> be a good base for collaboration.
>>> I think it is a better
>>> idea to
>>> wait
>>> with that until a runnable
>>> version is in the master
branch, so
>>> you can
>>> branch from there and develop
>>> from a clean state.
>>>
>>> The next biggest impediment is,
>>> that there are no automated
>>> tests for
>>> the development version and it
>>> has to be tested manually -- we
>>> should
>>> fix that rather early I'd say.
>>>
>>> I'm working on that at the
>>> moment, but experiencing
>>> problems. Is
>>> anybody
>>> here who has experience testing
>>> IDEA IntelliJ plugins? :-)
>>>
>>> Regards,
>>> Holger
>>>
>>>
>>> Holger Schmeisky;
>>> holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>>
>>> Takustraße 9, Room 008, Freie
>>> Universität Berlin, 14195 Berlin
>>> +49 176 64146306 <tel:%2B49%20176%2064146306>
>>> <tel:%2B49%20176%2064146306>
>>> <tel:%2B49%20176%2064146306>
>>>
>>> Am 18.07.2014 20:23, schrieb
>>> Graham Allan:
>>>
>>> Hi Holger,
>>>
>>> Great to hear!
>>>
>>> I work for a company based in
>>> London, from my home in
>>> Scotland. Saros
>>> has been a big part of our
>>> development process for over 18
>>> months now,
>>> and myself and my team are
>>> very keen to see the IntelliJ
>>> plugin. I've
>>> already contributed the ant
>>> build script for the Saros-I
>>> project and am
>>> eager to do more.
>>>
>>> Would you recommend checking
>>> out the current code or will
>>> there be so
>>> much churn in that area that
>>> we may as well wait?
>>>
>>> Kind regards and have a great
>>> weekend,
>>> Graham
>>>
>>>
>>> On 16 July 2014 13:43, Holger
>>> Schmeisky
>>> <holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>>>__> wrote:
>>>
>>> Hello everyone,
>>>
>>> my name is Holger and I
>>> am a colleague of Franz,
>>> currently working at FU
>>> Berlin on the
>>> development of Saros for JetBrains
>>> IDEA
>>> (IntelliJ,
>>> PyCharm, PhpStorm, ...).
>>>
>>> An IDEA version is
>>> under way and there is already a
>>> halfway-usable
>>> development version (in
>>> the development/raimondas2
>>> branch). It already
>>> has the basic features
>>> like project sharing,
>>> editing,
>>> follow mode, etc.
>>> However this version
>>> still misses a lot, is without
>>> automated tests and
>>> has only partially been
>>> merged into the master
>>> branch.
>>>
>>> In about 2-3 weeks, the
>>> code will be in a shape
>>> where
>>> other people can
>>> actually develop on it.
>>> I think it already makes
>>> sense
>>> to get in touch
>>> before, to get to know
>>> the codebase and our
>>> development process.
>>>
>>> So if you are
>>> interested in joining Saros/I
>>> development, please contact
>>> me or write here, so I
>>> can get to know you and
>>> get an
>>> overview how much
>>> interest there is :-)
>>>
>>> Regards,
>>> Holger
>>>
>>>
>>>
>>> --
>>> Holger Schmeisky;
>>> holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>>
>>> <mailto:holge...@fu-berlin.de <mailto:holge...@fu-berlin.de>
>>> <mailto:holge...@fu-berlin.de
<mailto:holge...@fu-berlin.de>>>>
>>> Takustraße 9, Room 008,
>>> Freie Universität Berlin,
>>> 14195 Berlin
>>> +49 176 64146306 <tel:%2B49%20176%2064146306>
>>> <tel:%2B49%20176%2064146306>
>>> <tel:%2B49%20176%2064146306>
>>> <tel:%2B49%20176%2064146306>
>>>
>>>
>>>
------------------------------__------------------------------__------------------
>>>
>>>
>>> Want fast and easy
>>> access to all the code in your
>>> enterprise? Index and
>>> search up to 200,000
>>> lines of code with a free
>>> copy of
>>> Black Duck
>>> Code Sight - the same
>>> software that powers the
>>> world's
>>> largest code
>>> search on Ohloh, the
>>> Black Duck Open Hub! Try it
>>> now.
>>> http://p.sf.net/sfu/bds
>>> _________________________________________________
>>> DPP-Devel mailing list
>>> DPP-Devel@lists.sourceforge.__net
>>> <mailto:DPP-Devel@lists.sourceforge.
<mailto:DPP-Devel@lists.sourceforge.>__net>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>>>
>>> <mailto:DPP-Devel@lists <mailto:DPP-Devel@lists>.
>>> <mailto:DPP-Devel@lists
<mailto:DPP-Devel@lists>.>__sourceforge.net
<http://sourceforge.net>
>>> <http://sourceforge.net>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>>>>
>>> https://lists.sourceforge.net/__lists/listinfo/dpp-devel
>>>
<https://lists.sourceforge.net/lists/listinfo/dpp-devel>
>>>
>>>
>>>
------------------------------__------------------------------__------------------
>>>
>>>
>>> Want fast and easy access to all
>>> the code in your enterprise?
>>> Index and
>>> search up to 200,000 lines of
>>> code with a free copy of Black
>>> Duck
>>> Code Sight - the same software
>>> that powers the world's
>>> largest code
>>> search on Ohloh, the Black Duck
>>> Open Hub! Try it now.
>>> http://p.sf.net/sfu/bds
>>>
>>> _________________________________________________
>>> DPP-Devel mailing list
>>> DPP-Devel@lists.sourceforge.__net
>>> <mailto:DPP-Devel@lists.sourceforge.
<mailto:DPP-Devel@lists.sourceforge.>__net>
>>>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
>>> <mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>>>
>>> https://lists.sourceforge.net/__lists/listinfo/dpp-devel
>>>
<https://lists.sourceforge.net/lists/listinfo/dpp-devel>
>>>
>>>
>>>
------------------------------------------------------------------------------
>>>
>>>
>>> Want fast and easy access to all the
code in your
>>> enterprise? Index and
>>> search up to 200,000 lines of code
with a free
>>> copy of Black Duck
>>> Code Sight - the same software that
powers the
>>> world's largest code
>>> search on Ohloh, the Black Duck Open
Hub! Try it now.
>>> http://p.sf.net/sfu/bds
>>> _______________________________________________
>>> DPP-Devel mailing list
>>> DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
>>>
<mailto:DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>>
>>> https://lists.sourceforge.net/lists/listinfo/dpp-devel
>>>
>>>
>>
>
------------------------------------------------------------------------------
> Want fast and easy access to all the code in your
enterprise? Index and
> search up to 200,000 lines of code with a free copy of Black
Duck
> Code Sight - the same software that powers the world's
largest code
> search on Ohloh, the Black Duck Open Hub! Try it now.
> http://p.sf.net/sfu/bds
> _______________________________________________
> DPP-Devel mailing list
> DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
> https://lists.sourceforge.net/lists/listinfo/dpp-devel
------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise?
Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest
code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
DPP-Devel mailing list
DPP-Devel@lists.sourceforge.net
<mailto:DPP-Devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/dpp-devel