(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.oacc-c-c++-common/
acc_get_property-aux.c
       1  /* Auxiliary functions for acc_get_property tests */
       2  /* { dg-do compile  { target skip-all-targets } } */
       3  
       4  #include <openacc.h>
       5  #include <stdlib.h>
       6  #include <stdio.h>
       7  #include <string.h>
       8  
       9  
      10  void
      11  expect_device_string_properties (acc_device_t dev_type, int dev_num,
      12  				 const char* expected_vendor,
      13  				 const char* expected_name,
      14  				 const char* expected_driver)
      15  {
      16    const char *vendor = acc_get_property_string (dev_num, dev_type,
      17  						acc_property_vendor);
      18    if (strcmp (vendor, expected_vendor))
      19      {
      20        fprintf (stderr, "Expected acc_property_vendor to equal \"%s\", "
      21  	       "but was \"%s\".\n", expected_vendor, vendor);
      22        abort ();
      23      }
      24  
      25    const char *name = acc_get_property_string (dev_num, dev_type,
      26  					      acc_property_name);
      27    if (strcmp (name, expected_name))
      28      {
      29        fprintf(stderr, "Expected acc_property_name to equal \"%s\", "
      30  	      "but was \"%s\".\n", expected_name, name);
      31        abort ();
      32      }
      33  
      34    const char *driver = acc_get_property_string (dev_num, dev_type,
      35  						acc_property_driver);
      36    if (strcmp (expected_driver, driver))
      37      {
      38        fprintf (stderr, "Expected acc_property_driver to equal %s, "
      39  	       "but was %s.\n", expected_driver, driver);
      40        abort ();
      41      }
      42  
      43    int unknown_property = 16058;
      44    size_t v = acc_get_property (dev_num, dev_type, (acc_device_property_t)unknown_property);
      45    if (v != 0)
      46      {
      47        fprintf (stderr, "Expected value of unknown numeric property to equal 0, "
      48  	       "but was %zu.\n", v);
      49        abort ();
      50      }
      51  
      52    int unknown_property2 = -16058;
      53    const char *s = acc_get_property_string (dev_num, dev_type, (acc_device_property_t)unknown_property2);
      54    if (s != NULL)
      55      {
      56        fprintf (stderr, "Expected value of unknown string property to be NULL, "
      57  	       "but was %s.\n", s);
      58        abort ();
      59      }
      60  }
      61  
      62  void
      63  expect_device_memory (acc_device_t dev_type, int dev_num,
      64  		      size_t expected_total_memory)
      65  {
      66  
      67    size_t total_mem = acc_get_property (dev_num, dev_type,
      68  				       acc_property_memory);
      69  
      70    if (total_mem != expected_total_memory)
      71      {
      72        fprintf (stderr, "Expected acc_property_memory to equal %zu, "
      73  	       "but was %zu.\n", expected_total_memory, total_mem);
      74        abort ();
      75      }
      76  
      77    size_t free_mem = acc_get_property (dev_num, dev_type,
      78  				      acc_property_free_memory);
      79    if (free_mem > total_mem)
      80      {
      81        fprintf (stderr, "Expected acc_property_free_memory <= acc_property_memory"
      82  	       ", but free memory was %zu and total memory was %zu.\n",
      83  	       free_mem, total_mem);
      84        abort ();
      85      }
      86  }
      87  
      88  void
      89  expect_device_properties (acc_device_t dev_type, int dev_num,
      90  			  size_t expected_total_memory,
      91  			  const char* expected_vendor,
      92  			  const char* expected_name,
      93  			  const char* expected_driver)
      94  {
      95    expect_device_string_properties (dev_type, dev_num, expected_vendor,
      96  				   expected_name, expected_driver);
      97    expect_device_memory (dev_type, dev_num, expected_total_memory);
      98  }