Back to index

lightning-sunbird  0.9+nobinonly
Classes | Defines | Functions
TestCOMPtrEq.cpp File Reference
#include "nsCOMPtr.h"

Go to the source code of this file.

Classes

class  nsICOMPtrEqTestFoo

Defines

#define NS_ICOMPTREQTESTFOO_IID
 This attempts to test all the possible variations of |operator==| used with |nsCOMPtr|s.

Functions

int main ()
 main()

Define Documentation

Value:
{0x8eb5bbef, 0xd1a3, 0x4659, \
    {0x9c, 0xf6, 0xfd, 0xf3, 0xe4, 0xd2, 0x00, 0x0e}}

This attempts to test all the possible variations of |operator==| used with |nsCOMPtr|s.

Currently only the tests where pointers are to the same class are enabled. It's not clear whether we should be supporting other tests, and some of them won't work on at least some platforms. If we add separate comparisons for nsCOMPtr<nsISupports> we'll need to add more tests for those cases.

Definition at line 55 of file TestCOMPtrEq.cpp.


Function Documentation

int main ( void  )

main()

Definition at line 78 of file TestCOMPtrEq.cpp.

  {
    nsCOMPtr<nsICOMPtrEqTestFoo> s;
    nsICOMPtrEqTestFoo* r = 0;
    const nsCOMPtr<nsICOMPtrEqTestFoo> sc;
    const nsICOMPtrEqTestFoo* rc = 0;
    nsICOMPtrEqTestFoo* const rk = 0;
    const nsICOMPtrEqTestFoo* const rkc = 0;
    nsDerivedSafe<nsICOMPtrEqTestFoo>* d = s.get();
    
#ifdef NSCAP_EQTEST_TEST_ACROSS_TYPES
    nsCOMPtr<nsICOMPtrEqTestFoo2> s2;
    nsICOMPtrEqTestFoo2* r2 = 0;
    const nsCOMPtr<nsICOMPtrEqTestFoo2> sc2;
    const nsICOMPtrEqTestFoo2* rc2 = 0;
    nsICOMPtrEqTestFoo2* const rk2 = 0;
    const nsICOMPtrEqTestFoo2* const rkc2 = 0;
    nsDerivedSafe<nsICOMPtrEqTestFoo2>* d2 = s2.get();
#endif

    return (!(PR_TRUE &&
              (s == s) &&
              (s == r) &&
              (s == sc) &&
              (s == rc) &&
              (s == rk) &&
              (s == rkc) &&
              (s == d) &&
              (r == s) &&
              (r == r) &&
              (r == sc) &&
              (r == rc) &&
              (r == rk) &&
              (r == rkc) &&
              (r == d) &&
              (sc == s) &&
              (sc == r) &&
              (sc == sc) &&
              (sc == rc) &&
              (sc == rk) &&
              (sc == rkc) &&
              (sc == d) &&
              (rc == s) &&
              (rc == r) &&
              (rc == sc) &&
              (rc == rc) &&
              (rc == rk) &&
              (rc == rkc) &&
              (rc == d) &&
              (rk == s) &&
              (rk == r) &&
              (rk == sc) &&
              (rk == rc) &&
              (rk == rk) &&
              (rk == rkc) &&
              (rk == d) &&
              (rkc == s) &&
              (rkc == r) &&
              (rkc == sc) &&
              (rkc == rc) &&
              (rkc == rk) &&
              (rkc == rkc) &&
              (rkc == d) &&
              (d == s) &&
              (d == r) &&
              (d == sc) &&
              (d == rc) &&
              (d == rk) &&
              (d == rkc) &&
              (d == d) &&
#ifdef NSCAP_EQTEST_TEST_ACROSS_TYPES
              (s == s2) &&
              (s == r2) &&
              (s == sc2) &&
              (s == rc2) &&
              (s == rk2) &&
              (s == rkc2) &&
              (s == d2) &&
              (r == s2) &&
              (r == r2) &&
              (r == sc2) &&
              (r == rc2) &&
              (r == rk2) &&
              (r == rkc2) &&
              (r == d2) &&
              (sc == s2) &&
              (sc == r2) &&
              (sc == sc2) &&
              (sc == rc2) &&
              (sc == rk2) &&
              (sc == rkc2) &&
              (sc == d2) &&
              (rc == s2) &&
              (rc == r2) &&
              (rc == sc2) &&
              (rc == rc2) &&
              (rc == rk2) &&
              (rc == rkc2) &&
              (rc == d2) &&
              (rk == s2) &&
              (rk == r2) &&
              (rk == sc2) &&
              (rk == rc2) &&
              (rk == rk2) &&
              (rk == rkc2) &&
              (rk == d2) &&
              (rkc == s2) &&
              (rkc == r2) &&
              (rkc == sc2) &&
              (rkc == rc2) &&
              (rkc == rk2) &&
              (rkc == rkc2) &&
              (rkc == d2) &&
              (d == s2) &&
              (d == r2) &&
              (d == sc2) &&
              (d == rc2) &&
              (d == rk2) &&
              (d == rkc2) &&
              (d == d2) &&
#endif
              PR_TRUE));
  }

Here is the call graph for this function: