forked from xuos/xiuos
				
			
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
/*
 | 
						|
* Copyright (c) 2020 AIIT XUOS Lab
 | 
						|
* XiUOS is licensed under Mulan PSL v2.
 | 
						|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
 | 
						|
* You may obtain a copy of Mulan PSL v2 at:
 | 
						|
*        http://license.coscl.org.cn/MulanPSL2
 | 
						|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 | 
						|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 | 
						|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 | 
						|
* See the Mulan PSL v2 for more details.
 | 
						|
*/
 | 
						|
 | 
						|
/**
 | 
						|
* @file:    test_musl.c
 | 
						|
* @brief:   a application of musl test function
 | 
						|
* @version: 2.0
 | 
						|
* @author:  AIIT XUOS Lab
 | 
						|
* @date:    2022/11/8
 | 
						|
*/
 | 
						|
 | 
						|
#include <transform.h>
 | 
						|
 | 
						|
#ifdef ADD_NUTTX_FEATURES
 | 
						|
 | 
						|
#if defined(CONFIG_MUSL_LIBC) && defined(CONFIG_FS_AUTOMOUNTER)
 | 
						|
 | 
						|
static void file_read_and_write(void)
 | 
						|
{
 | 
						|
    FILE *p;
 | 
						|
    char s[] = "good luck to you!";
 | 
						|
    char buffer[20];
 | 
						|
 | 
						|
    if((p = fopen("/mnt/sdcard/test.txt","w+")) == NULL)
 | 
						|
    {
 | 
						|
      printf("Can not open file!\n");
 | 
						|
    }
 | 
						|
    fwrite(s, sizeof(s) + 1, 1, p);
 | 
						|
    fseek(p, SEEK_SET, 0);
 | 
						|
    fread(buffer, sizeof(buffer) + 1, 1, p);
 | 
						|
    printf("read string is: %s\n", buffer);
 | 
						|
    fclose(p);
 | 
						|
}
 | 
						|
 | 
						|
static void file_operations(void)
 | 
						|
{
 | 
						|
   int ret;
 | 
						|
   FILE *fp;
 | 
						|
   char filename1[] = "/mnt/sdcard/file1.txt";
 | 
						|
   char filename2[] = "/mnt/sdcard/file2.txt";
 | 
						|
 | 
						|
   fp = fopen(filename1, "w");
 | 
						|
 | 
						|
   fprintf(fp, "%s", "this is runoob.com");
 | 
						|
   fclose(fp);
 | 
						|
   
 | 
						|
   ret = remove(filename1);
 | 
						|
 | 
						|
   if(ret == 0) 
 | 
						|
   {
 | 
						|
      printf("remove file1 success!\n");
 | 
						|
   }
 | 
						|
   else 
 | 
						|
   {
 | 
						|
      printf("error,can not remove file1!\n");
 | 
						|
   }
 | 
						|
 | 
						|
   ret = remove(filename2);
 | 
						|
   if(ret == 0) 
 | 
						|
   {
 | 
						|
      printf("remove file2 success!\n");
 | 
						|
   }
 | 
						|
   else 
 | 
						|
   {
 | 
						|
      printf("error,can not remove file2!\n");
 | 
						|
   }
 | 
						|
}
 | 
						|
 | 
						|
static void malloc_and_free(void)
 | 
						|
{
 | 
						|
  int *p;
 | 
						|
  int len;
 | 
						|
  for(int i = 0; i < 100; i++)
 | 
						|
  {
 | 
						|
    len = 1024*(i+1);
 | 
						|
    p = malloc(len);
 | 
						|
    if(p)
 | 
						|
    {
 | 
						|
      printf("malloc %d bytes success!\n",len);
 | 
						|
      free(p);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
void Testmusl(void)
 | 
						|
{
 | 
						|
  printf("--------start test file read and write!--------\n");
 | 
						|
  file_read_and_write();
 | 
						|
  printf("----------start test file operationsn!---------\n");
 | 
						|
  file_operations();
 | 
						|
  printf("---------start test malloc and free!-----------\n");
 | 
						|
  malloc_and_free();
 | 
						|
}
 | 
						|
#endif
 | 
						|
#endif
 |