How can I pass parameter to my test suites?
gtest --number-of-input=5
I have the following main gtest code. And --number-of-input=5 should be passed to InitGoogleTest().
#include <iostream>
#include <gtest/gtest.h>
int main(int argc, char **argv) {
  std::cout << "Running main() from gtest_main.cc\n";
  ::testing::GTEST_FLAG(output) = "xml:hello.xml";
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}
I don't know how to pass my parameter to the test suites/cases as follows?
class TestTwo : public QuickTest {
 protected:
  virtual void SetUp() {
      QuickTest::SetUp();
      square = new Square(10);
      circle = new Circle(10);
  }
  virtual void TearDown() {
      delete square;
      delete circle;
      QuickTest::TearDown();
  }
  Square* square;
  Circle* circle;
};
// Now, let's write tests using the QueueTest fixture.
// Tests the default constructor.
TEST_F(TestOne, DefaultConstructor) {
  EXPECT_EQ(100.0, square->area());
}
TEST_F(TestOne, DefaultDestructor) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_EMIT_Passthrough) {
  EXPECT_EQ(1,1);
}
TEST_F(TestOne, VHDL_BUILD_Passthrough) {
  EXPECT_EQ(1,1);
}
Added
I modified the main method to show the argv[i] after InitGoogleTest(). 
int main(int argc, char **argv) {
    std::cout << "Running main() from gtest_main.cc\n";
    ::testing::GTEST_FLAG(output) = "xml:hello.xml";
    testing::InitGoogleTest(&argc, argv);
    for (int i = 0; i < argc; i++) {
        cout << i << ":" << argv[i] << endl;
    }
This is the arguments given to the gtest: ./s --number-of-input=5 --gtest_filter=Test_Cases1*. 
This is the results:
Running main() from gtest_main.cc
0:./s
1:--number-of-input=5
Note: Google Test filter = Test_Cases1*
[==========] Running 0 tests from 0 test cases.
[==========] 0 tests from 0 test cases ran. (0 ms total)
[  PASSED  ] 0 tests.
gtest filters out the tests that does not have the name of Test_Cases1, and it also shows the correct arguments other than those start with gtest.
Reference - How to run specific test cases in GoogleTest