Bare tests are standalone assembly tests that don't require linking to any libc and hence can be built with kernel only compilers. The libc tests need a compiler capable of building properly linked userspace binaries. As we don't have such a cross compiler at the moment we won't be building those tests. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
		
			
				
	
	
		
			57 lines
		
	
	
		
			955 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			955 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* Check that TRT happens when error on too many opened files.
 | 
						|
#notarget: cris*-*-elf
 | 
						|
#sim: --sysroot=@exedir@
 | 
						|
*/
 | 
						|
#include <stddef.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <unistd.h>
 | 
						|
#include <errno.h>
 | 
						|
#include <limits.h>
 | 
						|
#include <sys/types.h>
 | 
						|
#include <sys/stat.h>
 | 
						|
#include <fcntl.h>
 | 
						|
#include <string.h>
 | 
						|
 | 
						|
int main (int argc, char *argv[])
 | 
						|
{
 | 
						|
  int i;
 | 
						|
  int filemax;
 | 
						|
 | 
						|
#ifdef OPEN_MAX
 | 
						|
  filemax = OPEN_MAX;
 | 
						|
#else
 | 
						|
  filemax = sysconf (_SC_OPEN_MAX);
 | 
						|
#endif
 | 
						|
 | 
						|
  char *fn = malloc (strlen (argv[0]) + 2);
 | 
						|
  if (fn == NULL)
 | 
						|
    abort ();
 | 
						|
  strcpy (fn, "/");
 | 
						|
  strcat (fn, argv[0]);
 | 
						|
 | 
						|
  for (i = 0; i < filemax + 1; i++)
 | 
						|
    {
 | 
						|
      if (open (fn, O_RDONLY) < 0)
 | 
						|
	{
 | 
						|
	  /* Shouldn't happen too early.  */
 | 
						|
	  if (i < filemax - 3 - 1)
 | 
						|
	    {
 | 
						|
	      fprintf (stderr, "i: %d\n", i);
 | 
						|
	      abort ();
 | 
						|
	    }
 | 
						|
	  if (errno != EMFILE)
 | 
						|
	    {
 | 
						|
	      perror ("open");
 | 
						|
	      abort ();
 | 
						|
	    }
 | 
						|
	  goto ok;
 | 
						|
	}
 | 
						|
    }
 | 
						|
  abort ();
 | 
						|
 | 
						|
ok:
 | 
						|
  printf ("pass\n");
 | 
						|
  exit (0);
 | 
						|
}
 |