Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] ITool.getOptions() - what is the expected return value if there are no options defined


Hi,
I am currently writing some test cases and think I may have discovered a bug, but am not 100% sure. Tool::getOptions does not currently return null, but a size 0 array when no options are defined. The interface definition is not clear about the expected return value. As a result of this some instantiations of MBS grammar lead to an exception being thrown in Tool.getOptions() in some circumstances (see XML file below, see red lines). This is caused by "ourOpt.getSuperClass().getId().equals(options[j].getId())" with a null superclass. Is the expected return value of ITool::getOptions null, when there are no options? Please confirm.
I have a fix, but wanted to double check whether this uses the correct assumption.
Regards
-- Lars

      <tool
            icon="icons/one.gif"
            id="test30_sto.dummy.tool.parent.2"
            isAbstract="true"
            name="test30_sto Tool2.Parent"/>
      <projectType
            id="test30_sto.dummy"
            isAbstract="false"
            isTest="true"
            name="test30_sto">
         <configuration
               id="test30_sto.dummy.config"
               name="Configuration for test30_sto">
            <toolChain
                  archList="all"
                  id="test30_sto.dummy.toolchain"
                  isAbstract="false"
                  name="Toolchain for test30_sto"
                  osList="all">
               <targetPlatform
                     archList="all"
                     id="test30_sto.dummy.platform"
                     isAbstract="false"
                     name="Platform for test30_sto"
                     osList="all"/>
               <builder
                     buildfileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"
                     id="test30_sto.dummy.builder"
                     isAbstract="false"
                     name="Builder for test30_sto"/>
               <tool
                     id="test30_sto.dummy.tool.1"
                     isAbstract="false"
                     name="Tool.1.NoIcon"/>
               <tool
                     icon="icons/one.gif"
                     id="test30_sto.dummy.tool.2"
                     isAbstract="false"
                     name="Tool.2.Icon1"
                     superClass="test30_sto.dummy.tool.parent.2">
                  <optionCategory
                        icon="icons/two.gif"
                        id="test30_sto.dummy.category.2.1"
                        name="Category.Tool2.1.Icon2"
                        owner="test30_sto.dummy.tool.2"/>
                  <option
                        category="test30_sto.dummy.category.2.1"
                        id="test30_sto.dummy.option.2.1.1"
                        isAbstract="false"
                        name="Option2.1.1.Handler"
                        valueHandler="org.eclipse.cdt.managedbuild.core.tests.TestValueHandler"
                        valueHandlerExtraArgument="Option2.1.1"/>
                  <option
                        category="test30_sto.dummy.category.2.1"
                        id="test30_sto.dummy.option.2.1.2"
                        isAbstract="false"
                        name="Option2.1.2.NoHandler"/>
                  <optionCategory
                        icon="icons/one.gif"
                        id="test30_sto.dummy.category.2.2"
                        name="Category.Tool2.2.Icon1"
                        owner="test30_sto.dummy.tool.2"/>
                  <option
                        category="test30_sto.dummy.category.2.2"
                        id="test30_sto.dummy.option.2.2.1"
                        isAbstract="false"
                        name="Option2.2.1.NoHandler"/>
                  <option
                        category="test30_sto.dummy.category.2.2"
                        id="test30_sto.dummy.option.2.2.2"
                        isAbstract="false"
                        name="Option2.2.2.Handler"
                        valueHandler="org.eclipse.cdt.managedbuild.core.tests.TestValueHandler"
                        valueHandlerExtraArgument="Option2.2.2"/>
               </tool>
               <tool
                     icon="icons/two.gif"
                     id="test30_sto.dummy.tool.3"
                     isAbstract="false"
                     name="Tool.3.Icon2">
                  <optionCategory
                        icon="icons/one.gif"
                        id="test30_sto.dummy.category.3.1"
                        name="Category.Tool3.1.Icon1"
                        owner="test30_sto.dummy.tool.3"/>
                  <option
                        category="test30_sto.dummy.category.3.1"
                        id="test30_sto.dummy.option.3.1.1"
                        isAbstract="false"
                        name="Option3.1.1.NoHandler"/>
                  <option
                        category="test30_sto.dummy.category.3.1"
                        id="test30_sto.dummy.option.3.1.2"
                        isAbstract="false"
                        name="Option3.1.2.Handler"
                        valueHandler="org.eclipse.cdt.managedbuild.core.tests.TestValueHandler"
                        valueHandlerExtraArgument="Option3.1.2"/>
               </tool>
               <optionCategory
                     id="test30_sto.dummy.category.4"
                     name="Category.Top.4.NoIcon"/>
               <optionCategory
                     id="test30_sto.dummy.category.5"
                     name="Category.Top.5.Icon2"/>
               <optionCategory
                     icon="icons/one.gif"
                     id="test30_sto.dummy.category.6"
                     name="Category.Top.6.Icon1"/>
               <option
                     category="test30_sto.dummy.category.4"
                     id="test30_sto.dummy.option.4.1"
                     isAbstract="false"
                     name="Option4.1.Handler"
                     valueHandler="org.eclipse.cdt.managedbuild.core.tests.TestValueHandler"
                     valueHandlerExtraArgument="Option4.1"
                     valueType="boolean"/>
               <option
                     category="test30_sto.dummy.category.5"
                     id="test30_sto.dummy.option.5.1"
                     isAbstract="false"
                     name="Option5.1.NoHandler"
                     valueType="boolean"/>
               <option
                     category="test30_sto.dummy.category.6"
                     id="test30_sto.dummy.option.6.1"
                     isAbstract="false"
                     name="Option6.1.Handler"
                     valueHandler="org.eclipse.cdt.managedbuild.core.tests.TestValueHandler"
                     valueHandlerExtraArgument="Option6.1"
                     valueType="boolean"/>
            </toolChain>
         </configuration>
      </projectType>    


********************************************************************** Symbian Software Ltd is a company registered in England and Wales with registered number 4190020 and registered office at 2-6 Boundary Row, Southwark, London, SE1 8HP, UK. This message is intended only for use by the named addressee and may contain privileged and/or confidential information. If you are not the named addressee you should not disseminate, copy or take any action in reliance on it. If you have received this message in error please notify postmaster@xxxxxxxxxxx and delete the message and any attachments accompanying it immediately. Neither Symbian nor any of its subsidiaries accepts liability for any corruption, interception, amendment, tampering or viruses occurring to this message in transit or for any message sent by its employees which is not in compliance with Symbian corporate policy. **********************************************************************


Back to the top