You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2012/05/03 00:56:48 UTC

svn commit: r1333243 - in /thrift/trunk/test: ThriftTest.thrift cpp/src/TestServer.cpp

Author: roger
Date: Wed May  2 22:56:47 2012
New Revision: 1333243

URL: http://svn.apache.org/viewvc?rev=1333243&view=rev
Log:
THRIFT-1590 Document the excepted return values and behaviors ThriftTest.thrift so that all languages can implement a test server
Patch: Nathaniel Cook

Modified:
    thrift/trunk/test/ThriftTest.thrift
    thrift/trunk/test/cpp/src/TestServer.cpp

Modified: thrift/trunk/test/ThriftTest.thrift
URL: http://svn.apache.org/viewvc/thrift/trunk/test/ThriftTest.thrift?rev=1333243&r1=1333242&r2=1333243&view=diff
==============================================================================
--- thrift/trunk/test/ThriftTest.thrift (original)
+++ thrift/trunk/test/ThriftTest.thrift Wed May  2 22:56:47 2012
@@ -122,38 +122,165 @@ struct OneField {
 
 service ThriftTest
 {
+  /**
+   * Prints "testVoid()" and returns nothing.
+   */
   void         testVoid(),
+  
+  /**
+   * Prints 'testString("%s")' with thing as '%s'
+   * @param string thing - the string to print
+   * @return string - returns the string 'thing'
+   */
   string       testString(1: string thing),
+  
+  /**
+   * Prints 'testByte("%d")' with thing as '%d'
+   * @param byte thing - the byte to print
+   * @return byte - returns the byte 'thing'
+   */
   byte         testByte(1: byte thing),
+  
+  /**
+   * Prints 'testI32("%d")' with thing as '%d'
+   * @param i32 thing - the i32 to print
+   * @return i32 - returns the i32 'thing'
+   */
   i32          testI32(1: i32 thing),
+ 
+  /**
+   * Prints 'testI64("%d")' with thing as '%d'
+   * @param i64 thing - the i64 to print
+   * @return i64 - returns the i64 'thing'
+   */
   i64          testI64(1: i64 thing),
+  
+  /**
+   * Prints 'testDouble("%f")' with thing as '%f'
+   * @param double thing - the double to print
+   * @return double - returns the double 'thing'
+   */
   double       testDouble(1: double thing),
+  
+  /**
+   * Prints 'testStruct("{%s}")' where thing has been formatted into a string of comma seperated values
+   * @param Xtruct thing - the Xtruct to print
+   * @return Xtruct - returns the Xtruct 'thing'
+   */
   Xtruct       testStruct(1: Xtruct thing),
+  
+  /**
+   * Prints 'testNest("{%s}")' where thing has been formatted into a string of the nested struct
+   * @param Xtruct2 thing - the Xtruct2 to print
+   * @return Xtruct2 - returns the Xtruct2 'thing'
+   */
   Xtruct2      testNest(1: Xtruct2 thing),
+ 
+  /**
+   * Prints 'testMap("{%s")' where thing has been formatted into a string of  'key => value' pairs
+   *  seperated by commas and new lines
+   * @param map<i32,i32> thing - the map<i32,i32> to print
+   * @return map<i32,i32> - returns the map<i32,i32> 'thing'
+   */
   map<i32,i32> testMap(1: map<i32,i32> thing),
+  
+  /**
+   * Prints 'testStringMap("{%s}")' where thing has been formatted into a string of  'key => value' pairs
+   *  seperated by commas and new lines
+   * @param map<string,string> thing - the map<string,string> to print
+   * @return map<string,string> - returns the map<string,string> 'thing'
+   */
   map<string,string> testStringMap(1: map<string,string> thing),
+  
+  /**
+   * Prints 'testSet("{%s}")' where thing has been formatted into a string of  values
+   *  seperated by commas and new lines
+   * @param set<i32> thing - the set<i32> to print
+   * @return set<i32> - returns the set<i32> 'thing'
+   */
   set<i32>     testSet(1: set<i32> thing),
+  
+  /**
+   * Prints 'testList("{%s}")' where thing has been formatted into a string of  values
+   *  seperated by commas and new lines
+   * @param list<i32> thing - the list<i32> to print
+   * @return list<i32> - returns the list<i32> 'thing'
+   */
   list<i32>    testList(1: list<i32> thing),
+  
+  /**
+   * Prints 'testEnum("%d")' where thing has been formatted into it's numeric value
+   * @param Numberz thing - the Numberz to print
+   * @return Numberz - returns the Numberz 'thing'
+   */
   Numberz      testEnum(1: Numberz thing),
+
+  /**
+   * Prints 'testTypedef("%d")' with thing as '%d'
+   * @param UserId thing - the UserId to print
+   * @return UserId - returns the UserId 'thing'
+   */
   UserId       testTypedef(1: UserId thing),
 
+  /**
+   * Prints 'testMapMap("%d")' with hello as '%d'
+   * @param i32 hello - the i32 to print
+   * @return map<i32,map<i32,i32>> - returns a dictionary with these values:
+   *   {-4 => {-4 => -4, -3 => -3, -2 => -2, -1 => -1, }, 4 => {1 => 1, 2 => 2, 3 => 3, 4 => 4, }, }
+   */
   map<i32,map<i32,i32>> testMapMap(1: i32 hello),
 
-  /* So you think you've got this all worked, out eh? */
+  /**
+   * So you think you've got this all worked, out eh?
+   *
+   * Creates a the returned map with these values and prints it out:
+   *   { 1 => { 2 => argument, 
+   *            3 => argument, 
+   *          },
+   *     2 => { 6 => <empty Insanity struct>, },
+   *   }
+   * @return map<UserId, map<Numberz,Insanity>> - a map with the above values 
+   */
   map<UserId, map<Numberz,Insanity>> testInsanity(1: Insanity argument),
 
-  /* Multiple parameters */
+  /**
+   * Prints 'testMulti()'
+   * @param byte arg0 - 
+   * @param i32 arg1 - 
+   * @param i64 arg2 - 
+   * @param map<i16, string> arg3 - 
+   * @param Numberz arg4 - 
+   * @param UserId arg5 - 
+   * @return Xtruct - returns an Xtruct with string_thing = "Hello2, byte_thing = arg0, i32_thing = arg1
+   *    and i64_thing = arg2
+   */
   Xtruct testMulti(1: byte arg0, 2: i32 arg1, 3: i64 arg2, 4: map<i16, string> arg3, 5: Numberz arg4, 6: UserId arg5),
 
-  /* Exception specifier */
-
+  /**
+   * Print 'testException(%s)' with arg as '%s'
+   * @param string arg - a string indication what type of exception to throw
+   * if arg == "Xception" throw Xception with errorCode = 1001 and message = arg
+   * elsen if arg == "TException" throw TException
+   * else do not throw anything
+   */
   void testException(1: string arg) throws(1: Xception err1),
 
-  /* Multiple exceptions specifier */
-
+  /**
+   * Print 'testMultiException(%s, %s)' with arg0 as '%s' and arg1 as '%s'
+   * @param string arg - a string indication what type of exception to throw
+   * if arg0 == "Xception" throw Xception with errorCode = 1001 and message = "This is an Xception"
+   * elsen if arg0 == "Xception2" throw Xception2 with errorCode = 2002 and message = "This is an Xception2"
+   * else do not throw anything
+   * @return Xtruct - an Xtruct with string_thing = arg1
+   */
   Xtruct testMultiException(1: string arg0, 2: string arg1) throws(1: Xception err1, 2: Xception2 err2)
 
-  /* Test oneway void */
+  /**
+   * Print 'testOneway(%d): Sleeping...' with secondsToSleep as '%d'
+   * sleep 'secondsToSleep'
+   * Print 'testOneway(%d): done sleeping!' with secondsToSleep as '%d'
+   * @param i32 secondsToSleep - the number of seconds to sleep
+   */
   oneway void testOneway(1:i32 secondsToSleep)
 }
 

Modified: thrift/trunk/test/cpp/src/TestServer.cpp
URL: http://svn.apache.org/viewvc/thrift/trunk/test/cpp/src/TestServer.cpp?rev=1333243&r1=1333242&r2=1333243&view=diff
==============================================================================
--- thrift/trunk/test/cpp/src/TestServer.cpp (original)
+++ thrift/trunk/test/cpp/src/TestServer.cpp Wed May  2 22:56:47 2012
@@ -284,7 +284,7 @@ class TestHandler : public ThriftTestIf 
       e.errorCode = 1001;
       e.message = arg;
       throw e;
-    } else if (arg.compare("ApplicationException") == 0) {
+    } else if (arg.compare("TException") == 0) {
       apache::thrift::TException e;
       throw e;
     } else {