IF (Tpetra_INST_INT_INT)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_ProblematicLookup
  SOURCES
    Map_ProblematicLookup
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 2
  STANDARD_PASS_OUTPUT
  )
ENDIF()

IF (Tpetra_INST_INT_LONG)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_Bug5378
  SOURCES
    Map_Bug5378
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 1
  STANDARD_PASS_OUTPUT
  )
ENDIF()

IF (Tpetra_INST_INT_LONG_LONG OR Tpetra_INST_INT_LONG)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_Bug5399
  SOURCES
    Map_Bug5399
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 4
  STANDARD_PASS_OUTPUT
  )
ENDIF()

# This one uses the default LO and GO types.
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_Bug6051
  SOURCES
    Map_Bug6051
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 2
  ARGS "--globally-reduce-test-result --output-show-proc-rank --output-to-root-rank-only=-1"
  STANDARD_PASS_OUTPUT
  )

TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_UnitTests
  SOURCES
    Map_UnitTests
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM serial mpi
  STANDARD_PASS_OUTPUT
  )

# Tpetra bug 5401:
# https://software.sandia.gov/bugzilla/show_bug.cgi?id=5401
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  NegativeBaseIndexTest
  SOURCES
    NegativeBaseIndexTest
  ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  STANDARD_PASS_OUTPUT
  NUM_MPI_PROCS 2
  )

# mfh 26 Sep 2015: Not sure if this one needs GO = int.
# It might be OK just to use the default GO type.
IF (TPETRA_INST_INT_INT)
  TRIBITS_ADD_EXECUTABLE_AND_TEST(
    Map_OneToOne
    SOURCES
    Map_OneToOne
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
    COMM serial mpi
    STANDARD_PASS_OUTPUT
    NUM_MPI_PROCS 2
    )
ENDIF()

IF (Tpetra_INST_INT_LONG_LONG OR Tpetra_INST_INT_LONG)
  # Tpetra bug 5822, first test.
  TRIBITS_ADD_EXECUTABLE_AND_TEST(
    Map_Bug5822
    SOURCES
    Map_Bug5822
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
    COMM mpi
    STANDARD_PASS_OUTPUT
    NUM_MPI_PROCS 2
    )

  # Tpetra bug 5822, second test.
  TRIBITS_ADD_EXECUTABLE_AND_TEST(
    Map_Bug5822_2
    SOURCES
    Map_Bug5822_2
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
    COMM mpi
    STANDARD_PASS_OUTPUT
    NUM_MPI_PROCS 2
    )
ENDIF()

IF (Tpetra_INST_INT_INT)
  # Tpetra bug 5882
  TRIBITS_ADD_EXECUTABLE_AND_TEST(
    Map_ExportTest_Bug5882
    SOURCES
    Map_ExportTest_Bug5882
    COMM serial mpi
    PASS_REGULAR_EXPRESSION "passed!"
    NUM_MPI_PROCS 2
    )
ENDIF()

IF (Tpetra_INST_INT_LONG)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_removeEmptyProcesses
  SOURCES
    Map_removeEmptyProcesses
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 1-10
  STANDARD_PASS_OUTPUT
  )

TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_replaceCommWithSubset
  SOURCES
    Map_replaceCommWithSubset
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 1-10
  STANDARD_PASS_OUTPUT
  )
ENDIF()

IF (Tpetra_INST_INT_INT)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_isOneToOne
  SOURCES
    isOneToOne
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM serial mpi
  NUM_MPI_PROCS 1-10
  STANDARD_PASS_OUTPUT
  )
ENDIF()

TRIBITS_ADD_EXECUTABLE_AND_TEST(
  Map_Bug6412
  SOURCES
    Map_Bug6412.cpp
    ${TEUCHOS_STD_UNIT_TEST_MAIN}
  COMM mpi
  NUM_MPI_PROCS 2-10
  STANDARD_PASS_OUTPUT
  )
