Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add a failing (since a few days) example with an explicit exit in MPI program
[simgrid.git] / teshsuite / smpi / pt2pt-dsend / pt2pt-dsend.c
index 57dcf03..c4b081e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2014. The SimGrid Team.
+/* Copyright (c) 2011-2021. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(dsend,"the dsend test");
 
-int main(int argc, char *argv[]) {
+static void test_opts(int argc, char* const argv[])
+{
+  int found = 0;
+  int option_index = 0;
+  static struct option long_options[] = {
+  {(char*)"long",     no_argument, 0,  0 },
+  {0,         0,                 0,  0 }
+  };
+  while (1) {
+    int ret = getopt_long(argc, argv, "s", long_options, &option_index);
+    if(ret==-1)
+      break;
+
+    switch (ret) {
+      case 0:
+      case 's':
+        found ++;
+      break;
+      default:
+        printf("option %s", long_options[option_index].name);
+      break;
+    }
+  }
+  if (found!=2){
+    printf("(smpi_)getopt_long failed ! \n");
+  }
+}
+
+int main(int argc, char *argv[])
+{
   int rank;
   int32_t data=11;
 
-  MPI_Init(&argc, &argv);
+  MPI_Init(NULL, NULL);
+
+  /* test getopt_long function */
+  test_opts(argc, argv);
+
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
   MPI_Request r;
   if (rank==1) {
@@ -42,5 +75,5 @@ int main(int argc, char *argv[]) {
 
   XBT_INFO("rank %d: data exchanged", rank);
   MPI_Finalize();
-  return 0;
+  exit(0);
 }