BUG#: 8700
authorkarl <karl>
Fri, 5 Feb 2010 16:38:44 +0000 (16:38 +0000)
committerkarl <karl>
Fri, 5 Feb 2010 16:38:44 +0000 (16:38 +0000)
TITLE:  HP Cadvise throws the following warnings in CIMCLIOutput.cpp

DESCRIPTION: Fixed HP Cadvise  issue and in process cleaned up the
function with the issue.  Added a test  to test the -sort option  to
the test suite

src/Clients/cimcli/CIMCLIOutput.cpp
src/Providers/TestProviders/CLITestProvider/tests/Makefile
src/Providers/TestProviders/CLITestProvider/tests/result.master

index be8242ea86b1885eeb04ba269aaf4ef2e71b4d5e..d1511b0bc2afe50792b3f93c543d69989e71e838 100644 (file)
@@ -75,87 +75,79 @@ static int _compareKeyBinding(const CIMKeyBinding& kb1,
                               const CIMKeyBinding& kb2)
 {
     int rtn;
-    if ((rtn = _compareCIMNames(kb1.getName(), kb2.getName())) != 0)
-    {
-        return rtn;
-    }
-    switch (kb1.getType())
+
+    if ((rtn = _compareCIMNames(kb1.getName(), kb2.getName())) == 0)
     {
-        case CIMKeyBinding::REFERENCE:
-            // Convert to paths and recurse through compare.
-            try
-            {
-                CIMObjectPath p1(kb1.getValue());
-                CIMObjectPath p2(kb2.getValue());
-                return _compareObjectPaths(p1,p2);
-            }
-            catch (Exception&)
-            {
-                // ignore if parsing fails
-                cerr << "Reference Path parsing failed" << endl;
-                return 0;
-            }
-            break;
-
-        case CIMKeyBinding::BOOLEAN:
-            // Compare as no case strings
-            return String::compareNoCase(kb1.getValue(), kb1.getValue());
-            break;
-
-        case CIMKeyBinding::NUMERIC:
-            // convert to numeric values and compare
-            Uint64 uValue1;
-            Sint64 sValue1;
-            if (StringConversion::stringToUnsignedInteger(
-                    kb1.getValue().getCString(),
-                        uValue1))
-            {
-                Uint64 uValue2;
-                if (StringConversion::stringToUnsignedInteger(
-                        kb2.getValue().getCString(),
-                            uValue2))
+        switch (kb1.getType())
+        {
+            case CIMKeyBinding::REFERENCE:
+                // Convert to paths and recurse through compare.
+                try
                 {
-                    return(uValue2 - uValue1);
+                    CIMObjectPath p1(kb1.getValue());
+                    CIMObjectPath p2(kb2.getValue());
+                    rtn = _compareObjectPaths(p1,p2);
                 }
-                else
+                catch (Exception&)
                 {
-                    // ignore error where we cannot convert both
-                    return 0;
+                    // ignore if parsing fails
+                    cerr << "Reference Path parsing failed" << endl;
+                    rtn = 0;
                 }
-            }
-            // Next try converting to signed integer
-            else if (StringConversion::stringToSignedInteger(
-                         kb1.getValue().getCString(),
-                             sValue1))
-            {
-                Sint64 sValue2;
-                if (StringConversion::stringToSignedInteger(
-                         kb2.getValue().getCString(),
-                             sValue1))
+                break;
+    
+            case CIMKeyBinding::BOOLEAN:
+                // Compare as no case strings
+                rtn = String::compareNoCase(kb1.getValue(), kb1.getValue());
+                break;
+    
+            case CIMKeyBinding::NUMERIC:
+                // convert to numeric values and compare
+                Uint64 uValue1;
+                Sint64 sValue1;
+                if (StringConversion::stringToUnsignedInteger(
+                    kb1.getValue().getCString(),
+                    uValue1))
                 {
-                    return (sValue2 - sValue1);
+                    Uint64 uValue2;
+                    if (StringConversion::stringToUnsignedInteger(
+                        kb2.getValue().getCString(),
+                        uValue2))
+                    {
+                        rtn = (uValue2 - uValue1);
+                    }
+                    else
+                    {
+                        // ignore error where we cannot convert both
+                        rtn = 0;
+                    }
                 }
-                else
+                // Next try converting to signed integer
+                else if (StringConversion::stringToSignedInteger(
+                    kb1.getValue().getCString(),
+                    sValue1))
                 {
-                    return 0;
+                    Sint64 sValue2;
+                    if (StringConversion::stringToSignedInteger(
+                        kb2.getValue().getCString(),
+                        sValue2))
+                    {
+                        rtn = (sValue2 - sValue1);
+                    }
+                    else
+                    {
+                        rtn = 0;
+                    }
                 }
-            }
-            break;
-        default:
-            // no conversion required.  Compare as Strings.
-            return String::compare(kb1.getValue(), kb1.getValue());
-            break;
+                break;
+            default:
+                // no conversion required.  Compare as Strings.
+                rtn = String::compare(kb1.getValue(), kb2.getValue());
+                break;
+        }
     }
-}
 
-static inline int _comparekeybindings(const void* p1, const void* p2)
-{
-    const CIMKeyBinding* kb1 = (const CIMKeyBinding*)p1;
-    const CIMKeyBinding* kb2 = (const CIMKeyBinding*)p2;
-
-    return String::compareNoCase(
-        kb1->getName().getString(),
-        kb2->getName().getString());
+    return rtn;
 }
 
 /*
index 9bd74368df515de976d784493f1570d9c5cbbfc6..0777c54d488c5a9db6c67ea334e3ef9f44237b59 100644 (file)
@@ -626,10 +626,43 @@ objectcountertests:
 
        @$(ECHO) +++++ Test objectcountertests Passed.
 
+##
+##     Confirm the sort of instances and instance Paths responses
+##
+SortInstancesTest:
+       @$(ECHO) 21. +++++ SortInstancesTest
+       @$(ECHO) 21. +++++ SortInstancesTest >> $(RESULTFILE)
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Zed Name=Futz
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Norman Name=Susan
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Thomas Name=Peter
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Fred Name=Jones
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Judy Name=blah
+       @cimcli ci -n "$(PROVIDERNS)" Test_CLITestProviderClass \
+           Id=Andy Name=Blue
+       @cimcli ni -n "$(PROVIDERNS)" Test_CLITestProviderClass --sort \
+               >>$(RESULTFILE)
+       @cimcli ei -n "$(PROVIDERNS)" Test_CLITestProviderClass --sort \
+               -pl Id,Name \
+               >>$(RESULTFILE)
+
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Zed\"
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Norman\"
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Thomas\"
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Fred\"
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Judy\"
+       @cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Andy\"
+
+       @$(ECHO) +++++ Test SortInstancesTest Passed.
+
 ## Test Enumerate Classes and Enumerate ClassNames
 enumerateClasses:
-       @$(ECHO) 21. +++++ Test For enumerateClasses
-       @$(ECHO) 21. +++++ Test For enumerateClasses  >> $(RESULTFILE)
+       @$(ECHO) 22. +++++ Test For enumerateClasses
+       @$(ECHO) 22. +++++ Test For enumerateClasses  >> $(RESULTFILE)
 
         ## test enumerate classes with our known class to assure
        ## defined output
@@ -647,7 +680,7 @@ enumerateClasses:
 
        @cimcli nc -n "$(STATICNS)"  >> $(RESULTFILE)
 
-       @$(ECHO) 21. +++++ Test enumerateClasses
+       @$(ECHO) 22. +++++ Test enumerateClasses
 
 ### Execute the set of test targets defined below
 poststarttests:
@@ -679,6 +712,7 @@ poststarttests:
        ## see Bug 8690
        ####$(MAKE) namespacetests
        $(MAKE) objectcountertests
+       $(MAKE) SortInstancesTest
        $(MAKE) enumerateClasses
 
        @$(ECHO) +++++ Compare Result files
@@ -710,12 +744,14 @@ poststarttests:
 ### reinitialized (server restarted or provider reloaded)
 clean:
        ## remove any existing instances
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Zed\"
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Norman\"
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Thomas\"
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Fred\"
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Judy\"
+       -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass.Id=\"Andy\"
        -@cimcli di -n "$(PROVIDERNS)" \
-           Test_CLITestProviderClass.Id=\"Norman\"
-       -@cimcli di -n "$(PROVIDERNS)" \
-           Test_CLITestProviderClass.Id=\"Thomas\"
-       -@cimcli di -n "$(PROVIDERNS)" \
-           Test_CLITestProviderClass.Id=\"ScalarTest\"
+               Test_CLITestProviderClass.Id=\"ScalarTest\"
        -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass Id=arrayTest
        -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass Id=stringTest
        -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass \
@@ -725,8 +761,8 @@ clean:
        -@cimcli di -n "$(PROVIDERNS)" Test_CLITestProviderClass \
            Id="EmptyStringTest"
        -@cimcli im Test_CLITestProviderClass -n "$(PROVIDERNS)" \
-               resetProviderParameters
-
+               resetProviderParameters
+       
        ## Remove the result files
        -@$(RM) $(RESULTFILE)
        -@$(RM) $(TABLEFORMATFILE)
@@ -764,5 +800,9 @@ rm:
        cimcli im Test_CLITestProviderClass -n "$(PROVIDERNS)" \
                resetProviderParameters
 
+a:
+       cimcli r Test_CLITestProviderClass.Id=\"Mike\" -n "$(PROVIDERNS)" \
+        --setRtnHostNames "blah" -v
+
 # END_OF_FILE
 
index e535a7fea929b05267c3036631d68d0c21b4f031..dd472cd19e5d9b39ce7c58ee940cad1646cb36b9 100644 (file)
@@ -1210,7 +1210,71 @@ Failed associator names count test. Expected= 10 Received= 1
 1 referenceNames Test_CLITestProviderClass returned.
 Failed referenceNames count test. Expected= 10 Received= 1
 Return Value= 0
-21. +++++ Test For enumerateClasses
+21. +++++ SortInstancesTest
+Test_CLITestProviderClass.Id="Andy"
+Test_CLITestProviderClass.Id="Fred"
+Test_CLITestProviderClass.Id="Judy"
+Test_CLITestProviderClass.Id="Mike"
+Test_CLITestProviderClass.Id="Norman"
+Test_CLITestProviderClass.Id="Thomas"
+Test_CLITestProviderClass.Id="Zed"
+path= Test_CLITestProviderClass.Id="Andy"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Andy";
+Name = "Blue";
+};
+path= Test_CLITestProviderClass.Id="Fred"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Fred";
+Name = "Jones";
+};
+path= Test_CLITestProviderClass.Id="Judy"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Judy";
+Name = "blah";
+};
+path= Test_CLITestProviderClass.Id="Mike"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Mike";
+Name = "Bob";
+};
+path= Test_CLITestProviderClass.Id="Norman"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Norman";
+Name = "Susan";
+};
+path= Test_CLITestProviderClass.Id="Thomas"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Thomas";
+Name = "Peter";
+};
+path= Test_CLITestProviderClass.Id="Zed"
+
+//Instance of Test_CLITestProviderClass
+instance of Test_CLITestProviderClass
+{
+Id = "Zed";
+Name = "Futz";
+};
+22. +++++ Test For enumerateClasses
 CIM_ReplaceableProductFRU
 CIM_ElementCapabilities
 WET_RelatedStatistics