Example #1
0
Status CreateDirectories(const OsPath& path, mode_t mode, bool breakpoint)
{
	if(path.empty())
		return INFO::OK;

	struct stat s;
	if(wstat(path, &s) == 0)
	{
		if(!S_ISDIR(s.st_mode))	// encountered a file
			WARN_RETURN(ERR::FAIL);
		return INFO::OK;
	}

	// If we were passed a path ending with '/', strip the '/' now so that
	// we can consistently use Parent to find parent directory names
	if(path.IsDirectory())
		return CreateDirectories(path.Parent(), mode, breakpoint);

	RETURN_STATUS_IF_ERR(CreateDirectories(path.Parent(), mode));

	errno = 0;
	if(wmkdir(path, mode) != 0)
	{
		debug_printf("CreateDirectories: failed to mkdir %s (mode %d)\n", path.string8().c_str(), mode);
		if (breakpoint)
			WARN_RETURN(StatusFromErrno());
		else
			return StatusFromErrno();
	}

	return INFO::OK;
}
TInt CTestWideApi :: wremove_val2()
	{
	wchar_t *dirName = L"C:\\wremoveDir1"; 
	wchar_t *fileName1 = L"C:\\wremoveDir1\\file1.txt"; //file doesnot exist
	TInt ret = -1;    
    errno = 0;
    if(wmkdir(dirName ,S_IWUSR)  < 0) 
    	{
    	INFO_PRINTF1(_L("Failed to create the parent directory"));
    	return KErrGeneral ;
    	}    
    ret = wremove(fileName1);
    if(ret != -1 && errno == 0) 
    	{
    	INFO_PRINTF1(_L("wremove failed"));
    	return KErrGeneral;
    	}       
    ret = wremove(dirName);
    if(ret != 0)
    	{
    	INFO_PRINTF1(_L("wremove failed"));
    	return KErrGeneral;
    	}    
    return KErrNone ;
	}
TInt CTestWideApi::wfdopen_ivalm1()
	{
	int wfd;
	int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR);
	if(ret_wmkdir)
		{
	  	_LIT(Kerr , "Failed to make dir") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;		
		}				
	if((wfd=wopen(L"C:\\ggg\\lll.txt", O_WRONLY | O_CREAT | O_TRUNC, 0777))<0)
		{
	   	_LIT(Kopen,"Failed to open file");
		INFO_PRINTF1(Kopen);
		wrmdir(L"C:\\ggg");        		
		return KErrGeneral;
	    }
    FILE *fp =wfdopen(wfd ,NULL);
    if(NULL != fp)    	   
	    {
	 	wunlink(L"C:\\ggg\\lll.txt");
	   	wrmdir(L"C:\\ggg");
	   	return KErrGeneral;    	
	    }
	close(wfd);
    wunlink(L"C:\\ggg\\lll.txt");
	wrmdir(L"C:\\ggg");
    return KErrNone;  
	}
TInt CTestWideApi::wremove_val3() 
	{
	TInt nameRead;
	TInt retnVal;
	int retn = KErrGeneral;		
   _LIT( Klen, "Parameter1" );
   
   TBool res = GetIntFromConfig(ConfigSection(), Klen, nameRead);
   if(!res)
		{
	 	_LIT(Kerr , "Failed to read the value") ;
	 	INFO_PRINTF1(Kerr) ;
	 	return KErrGeneral ;
		}
   _LIT( Klen2, "Parameter2" );   
   res = GetIntFromConfig(ConfigSection(), Klen2, retnVal);
   if(!res)
		{
	 	_LIT(Kerr , "Failed to read the value") ;
	 	INFO_PRINTF1(Kerr) ;
	 	return KErrGeneral ;
		}	
	wchar_t* dirName = L"C:\\wremoveDir3";
	int ret1 = wmkdir(dirName, S_IWUSR);
	if(!ret1)
		{
		int ret = wremove(dirName);		
		if(!ret && !retnVal)
			{
			INFO_PRINTF1(  _L("Passed..."));
			retn = KErrNone;
			}
		else if(ret && retnVal)
			{
			INFO_PRINTF1( _L("Passed..."));
			retn = KErrNone;
			}			
		else
			{
			INFO_PRINTF1( _L("Failed..."));	
			}
		}
	else
		{
		if(retnVal)
			{
			INFO_PRINTF1(  _L("Passed..."));
			retn = KErrNone;
			}
		else
			{
			INFO_PRINTF1( _L("Failed..."));	
			}
		}
    return retn;
	}
Example #5
0
OMRawStorage* 
OMXMLStorage::openNewDataStream(const wchar_t* uri)
{
    TRACE("OMXMLStorage::openNewDataStream");
    PRECONDITION("XML document raw storage has filename", _storage->fileName() != 0);

    // uri is assumed to be 'stream directory' / 'stream file name' as
    // created in getDataStreamEntityValue()

    OMDiskRawStorage* storage = 0;

    wchar_t* base = getBaseFilePath(_storage->fileName());


    // start by creating the directory
    wchar_t* workBuffer = new wchar_t[wcslen(uri) + 1];
    wcscpy(workBuffer, uri);
    wchar_t* sep = wmemchr(workBuffer, L'/', wcslen(uri));
    ASSERT("New DataStream uri starts with a directory", sep != 0);
    *sep = L'\0';
    wchar_t* filepath = new wchar_t[wcslen(workBuffer) + 1];
    wcsconvertURItoFilepath(workBuffer, filepath);
    wchar_t* fullFilepath = new wchar_t[wcslen(base) + wcslen(filepath) + 1];
    wcscpy(fullFilepath, base);
    wcscat(fullFilepath, filepath);
    wmkdir(fullFilepath);
    delete [] workBuffer;
    delete [] filepath;
    delete [] fullFilepath;

    // remove the file and then open new modify
    filepath = new wchar_t[wcslen(uri) + 1];
    wcsconvertURItoFilepath(uri, filepath);
    fullFilepath = new wchar_t[wcslen(base) + wcslen(filepath) + 1];
    wcscpy(fullFilepath, base);
    wcscat(fullFilepath, filepath);
    wremove(fullFilepath);
    try
    {
        storage = OMDiskRawStorage::openNewModify(fullFilepath);
    }
    catch (...)
    {
        storage = 0;
    }

    delete [] filepath;
    delete [] fullFilepath;
    delete [] base;
    
    return storage;
}
TInt CTestWideApi::wremove_val1()
	{
	wchar_t *dirName = L"C:\\wremoveDir"; 
	wchar_t *fileName1 = L"C:\\wremoveDir\\file1.txt"; 
	wchar_t *fileName2 = L"C:\\wremoveDir\\file2.txt"; 	
    TInt ret = -1;    
    errno = 0;
    if(wmkdir(dirName ,S_IWUSR)  < 0) 
	    {
    	INFO_PRINTF1(_L("Failed to create the parent directory"));
    	return KErrGeneral ;
	    }    
    FILE *fp = wfopen(fileName1, (wchar_t *)"w");    
    if(fp == NULL) 
	    {
    	INFO_PRINTF1(_L("Failed to create the child directory"));
    	return KErrGeneral ;
	    }
    fclose(fp);        
    
    fp = wfopen(fileName2, (wchar_t *)"w");    
    if(fp == NULL) 
	    {
    	INFO_PRINTF1(_L("Failed to create the child directory"));
    	return KErrGeneral ;
	    }
    fclose(fp);    
    ret = wremove(fileName1);
    if(ret != 0) 
	    {
    	INFO_PRINTF1(_L("wremove failed"));
    	wunlink(fileName1);
    	return KErrGeneral;
	    }    
    ret = wremove(fileName2);
    if(ret != 0) 
	    {
    	INFO_PRINTF1(_L("wremove failed"));
    	wunlink(fileName2);    	
    	return KErrGeneral;
	    }    
    ret = wremove(dirName);
    if(ret != 0)
		{
		INFO_PRINTF1(_L("wremove failed"));
		return KErrGeneral;
		}    
    return KErrNone ;        
	}
TInt CTestWideApi::wfreopen_valinv()
	{
	TPtrC nameRead;	
	_LIT( KString, "Parameter1" );	    	
	TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead);
	if(!res)
		{
		_LIT(Kerr , "Failed to read string") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}	
	int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR);
	if((errno == EEXIST) || (!ret_wmkdir))
		{
		TBuf8<100> buf;	   				
		buf.Copy(nameRead);
		char* filename = (char*) buf.Ptr();
		filename[buf.Length()]='\0';
		wchar_t *pathName = (wchar_t *)malloc(30*sizeof(wchar_t));
		if(pathName==NULL)
			{
			wrmdir(L"C:\\ggg");        								
			return KErrNoMemory;							
			}						
		size_t siz = mbstowcs(pathName, filename, 30);
		wunlink(pathName) ;
        FILE *fp = wfreopen(pathName ,L"w",stdout);
        if(fp == NULL) 
			{
			_LIT(Kropen , " Failed to reopen file " ) ;
			INFO_PRINTF1(Kropen) ;
			wrmdir(L"C:\\ggg");        		
			free(pathName);
			return KErrNone;
			}
        else
        	{
    		wrmdir(L"C:\\ggg");  
    		free(pathName);
    		return KErrGeneral;
        	}
		}
	else
		{
	  	_LIT(Kerr , "Failed to make dir") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}
	}
Example #8
0
int create_directory( wchar_t *d )
{
	int ok = 0;
	struct stat buf;
	int stat_res = 0;

	while( (stat_res = wstat(d, &buf ) ) != 0 )
	{
		if( errno != EAGAIN )
			break;
	}

	if( stat_res == 0 )
	{
		if( S_ISDIR( buf.st_mode ) )
		{
			ok = 1;
		}
	}
	else
	{
		if( errno == ENOENT )
		{
			wchar_t *dir = wcsdup( d );
			dir = wdirname( dir );
			if( !create_directory( dir ) )
			{
				if( !wmkdir( d, 0700 ) )
				{
					ok = 1;
				}
			}
			free(dir);
		}
	}

	return ok?0:-1;
}
TInt CTestWideApi::wfdopen_ivalm()
	{
	TPtrC nameRead;
	_LIT( KString, "Parameter1" );	    	
	TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead);
	if(!res)
		{
		_LIT(Kerr , "Failed to read string") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}	
	int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR);
	if((errno == EEXIST) || (!ret_wmkdir))
		{
		TBuf8<100> buf;
	
		int wfd;
		buf.Copy(nameRead);
		char* filemode = (char*) buf.Ptr();
		filemode[buf.Length()]='\0';
		wchar_t *dmode = (wchar_t *)malloc(30*sizeof(wchar_t));
		if(dmode==NULL)
			{
			wrmdir(L"C:\\ggg");        								
			return KErrNoMemory;							
			}						
		size_t siz = mbstowcs(dmode, filemode, 30);
		wunlink(L"C:\\ggg\\lll.txt");
		if((wfd=wopen(L"C:\\ggg\\lll.txt", O_WRONLY | O_CREAT | O_TRUNC, 0777))<0)
	        {
        	_LIT(Kopen,"Failed to open file");
			INFO_PRINTF1(Kopen);
			wrmdir(L"C:\\ggg");      
			free(dmode) ;
			return KErrGeneral;
	        }
        else
	        {
	         FILE *fp =wfdopen(wfd ,dmode);
        	 if(NULL == fp)    	
        	 	{
	    	 	_LIT(Kopen,"wfdopen failed");
				INFO_PRINTF1(Kopen);
				close(wfd);
				wunlink(L"C:\\ggg\\lll.txt");
				wrmdir(L"C:\\ggg"); 
				free(dmode) ;     		
				return KErrNone;
        	 	}
        	 else
        	    { 
    	    	wunlink(L"C:\\ggg\\lll.txt");
   				wrmdir(L"C:\\ggg");
   				free(dmode) ;
    	    	return KErrGeneral;
        	    }        	 	
    	    }      
      	}
	else
		{
	  	_LIT(Kerr , "Failed to make dir") ;
		INFO_PRINTF1(Kerr) ;
		wunlink(L"C:\\ggg\\lll.txt");
   		wrmdir(L"C:\\ggg");
		return KErrGeneral ;
		}
	}
TInt CTestWideApi::wfreopen_val()
	{
	TPtrC nameRead;
	_LIT( KString, "Parameter1" );
	TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead);
	if(!res)
		{
		_LIT(Kerr , "Failed to read string") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}
    int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR);
	if((errno == EEXIST) || (!ret_wmkdir))
		{
		TBuf8<100> buf;	
		int wfd;
		FILE *fp;
		buf.Copy(nameRead);
		char c = 'z';
		char* filename = (char*) buf.Ptr();
		filename[buf.Length()]='\0';
		wchar_t *pathName = (wchar_t *)malloc(30*sizeof(wchar_t));
		if(pathName==NULL)
			{
			wrmdir(L"C:\\ggg");        								
			return KErrNoMemory;							
			}							
		size_t siz = mbstowcs(pathName, filename, 30);
		wunlink(pathName) ;
        if((wfd=wopen(pathName, O_WRONLY | O_CREAT | O_TRUNC, 0666))<0)
        	{
        	_LIT(Kopen,"Failed to open file");
			INFO_PRINTF1(Kopen);
			wrmdir(L"C:\\ggg");  
			free(pathName);      		
			return KErrGeneral;
        	}
        else
        	{
             write(wfd,&c,1); 	
        	}
        close(wfd);
        if((fp=wfreopen(pathName ,L"r",stdin))==NULL) 
			{
			_LIT(Kropen , " Failed to reopen file " ) ;
			INFO_PRINTF1(Kropen) ;
			wrmdir(L"C:\\ggg");  
			free(pathName);       		
			return KErrGeneral;
			}
     	char * filen="C:\\tem.txt";
     	unlink(filen);
     	int fd=open(filen, O_WRONLY | O_CREAT | O_TRUNC, 0666);
		if(fd<0)
			{
			_LIT(Kopen,"Failed to open file");
			INFO_PRINTF1(Kopen);
			wrmdir(L"C:\\ggg");        		
			free(pathName); 
			return KErrGeneral  ;
			}
		else
			{
		   	write(fd,&c,1);
			}
		close(fd); 
	    fclose(fp); 
	    unlink(filen);
		wunlink(pathName);	
		wrmdir(L"C:\\ggg");  
		free(pathName);       		
        return KErrNone ;
	    }
	else
		{
	  	_LIT(Kerr , "Failed to make dir") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}
	}
// -----------------------------------------------------------------------------
//Function Name : wfdopen_val
//API Tested : wfdopen
//TestCase Description: testing the behaviour of wfdopen for valid arguments
// initialized to NULL.
// -----------------------------------------------------------------------------  
TInt CTestWideApi::wfdopen_val()
	{
	TPtrC nameRead;
	wchar_t *pathName = NULL;
	_LIT( KString, "Parameter1" );	    	
	TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead);
	if(!res)
		{
		_LIT(Kerr , "Failed to read string") ;
		INFO_PRINTF1(Kerr) ;
		return KErrGeneral ;
		}		
	int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR);
	if((errno == EEXIST) || (!ret_wmkdir))
		{
		TBuf8<100> buf;	
		int wfd;
		FILE *fp;
		buf.Copy(nameRead);
		char* filename = (char*) buf.Ptr();
		filename[buf.Length()]='\0';
		pathName = (wchar_t *)malloc(30*sizeof(wchar_t));
		if(pathName==NULL)
			{
			wrmdir(L"C:\\ggg");        								
			return KErrNoMemory;							
			}						
		size_t siz = mbstowcs(pathName, filename, 30);
		wunlink(pathName) ;
        if((wfd=wopen(pathName, O_WRONLY | O_CREAT | O_TRUNC, 0666))<0)
	        {
        	_LIT(Kopen,"Failed to open file");
			INFO_PRINTF1(Kopen);
			wrmdir(L"C:\\ggg"); 
			free(pathName);       		
			return KErrGeneral;
	        }
        else
	        {
        	 if(NULL == (fp =wfdopen(wfd ,L"w")))    	
        	 	{
        	 	_LIT(Kopen,"wfdopen failed");
				INFO_PRINTF1(Kopen);
				wrmdir(L"C:\\ggg"); 
				free(pathName);       		
				return KErrGeneral;
        	 	}
        	 char *buffer="Writing to the file";
        	 size_t size=strlen(buffer);        	 
        	 if(size!=(fwrite(buffer,1,size,fp)))
        	 	{
        	 	_LIT(Kopen,"fwrite failed");
				INFO_PRINTF1(Kopen);
				wrmdir(L"C:\\ggg");    
				free(pathName);    		
				return KErrGeneral;
        	 	}        	 	
    	    }
       fclose(fp);
       wunlink(pathName);
       wrmdir(L"C:\\ggg");
       free(pathName);        		
	   return KErrNone;
	    }
	else
		{
	  	_LIT(Kerr , "Failed to make dir") ;
		INFO_PRINTF1(Kerr) ;
		wrmdir(L"C:\\ggg");
		return KErrGeneral ;
		}
	}