func testSimple(t *testing.T, apiClient pfs.APIClient, cluster Cluster) { repoName := "testSimpleRepo" err := pfsutil.CreateRepo(apiClient, repoName) require.NoError(t, err) commit, err := pfsutil.StartCommit(apiClient, repoName, "") require.NoError(t, err) require.NotNil(t, commit) newCommitID := commit.Id newCommitInfo, err := pfsutil.InspectCommit(apiClient, repoName, newCommitID) require.NoError(t, err) require.NotNil(t, newCommitInfo) require.Equal(t, newCommitID, newCommitInfo.Commit.Id) require.Equal(t, pfs.CommitType_COMMIT_TYPE_WRITE, newCommitInfo.CommitType) require.Nil(t, newCommitInfo.ParentCommit) commitInfos, err := pfsutil.ListCommit(apiClient, repoName) require.NoError(t, err) require.Equal(t, 1, len(commitInfos)) require.Equal(t, newCommitInfo.Commit, commitInfos[0].Commit) err = pfsutil.MakeDirectory(apiClient, repoName, newCommitID, "a/b") require.NoError(t, err) err = pfsutil.MakeDirectory(apiClient, repoName, newCommitID, "a/c") require.NoError(t, err) err = pfsutil.MakeDirectory(apiClient, repoName, newCommitID, "a/d") require.NoError(t, err) doWrites(t, apiClient, repoName, newCommitID) doBlockWrites(t, apiClient, repoName, newCommitID) err = pfsutil.FinishCommit(apiClient, repoName, newCommitID) require.NoError(t, err) newCommitInfo, err = pfsutil.InspectCommit(apiClient, repoName, newCommitID) require.NoError(t, err) require.NotNil(t, newCommitInfo) require.Equal(t, newCommitID, newCommitInfo.Commit.Id) require.Equal(t, pfs.CommitType_COMMIT_TYPE_READ, newCommitInfo.CommitType) require.Nil(t, newCommitInfo.ParentCommit) checkWrites(t, apiClient, repoName, newCommitID) checkBlockWrites(t, apiClient, repoName, newCommitID) fileInfos, err := pfsutil.ListFile(apiClient, repoName, newCommitID, "a/b", &pfs.Shard{Number: 0, Modulus: 1}) require.NoError(t, err) require.Equal(t, testSize, len(fileInfos)) fileInfos, err = pfsutil.ListFile(apiClient, repoName, newCommitID, "a/c", &pfs.Shard{Number: 0, Modulus: 1}) require.NoError(t, err) require.Equal(t, testSize, len(fileInfos)) var fileInfos2 [7][]*pfs.FileInfo var wg sync.WaitGroup for i := 0; i < 7; i++ { i := i wg.Add(1) go func() { defer wg.Done() fileInfos3, iErr := pfsutil.ListFile(apiClient, repoName, newCommitID, "a/b", &pfs.Shard{Number: uint64(i), Modulus: 7}) require.NoError(t, iErr) fileInfos2[i] = fileInfos3 }() } wg.Wait() count := 0 for i := 0; i < 7; i++ { count += len(fileInfos2[i]) } require.Equal(t, testSize, count) }
func testSimple(t *testing.T, apiClient pfs.ApiClient, internalAPIClient pfs.InternalApiClient, cluster Cluster) { repositoryName := TestRepositoryName() err := pfsutil.InitRepository(apiClient, repositoryName) require.NoError(t, err) commitInfo, err := pfsutil.GetCommitInfo(apiClient, repositoryName, "scratch") require.NoError(t, err) require.NotNil(t, commitInfo) require.Equal(t, "scratch", commitInfo.Commit.Id) require.Equal(t, pfs.CommitType_COMMIT_TYPE_READ, commitInfo.CommitType) require.Nil(t, commitInfo.ParentCommit) scratchCommitInfo := commitInfo commitInfos, err := pfsutil.ListCommits(apiClient, repositoryName) require.NoError(t, err) require.Equal(t, 1, len(commitInfos.CommitInfo)) require.Equal(t, scratchCommitInfo, commitInfos.CommitInfo[0]) commit, err := pfsutil.Branch(apiClient, repositoryName, "scratch") require.NoError(t, err) require.NotNil(t, commit) newCommitID := commit.Id commitInfo, err = pfsutil.GetCommitInfo(apiClient, repositoryName, newCommitID) require.NoError(t, err) require.NotNil(t, commitInfo) require.Equal(t, newCommitID, commitInfo.Commit.Id) require.Equal(t, pfs.CommitType_COMMIT_TYPE_WRITE, commitInfo.CommitType) require.Equal(t, "scratch", commitInfo.ParentCommit.Id) newCommitInfo := commitInfo commitInfos, err = pfsutil.ListCommits(apiClient, repositoryName) require.NoError(t, err) require.Equal(t, 2, len(commitInfos.CommitInfo)) require.Equal(t, newCommitInfo, commitInfos.CommitInfo[0]) require.Equal(t, scratchCommitInfo, commitInfos.CommitInfo[1]) err = pfsutil.MakeDirectory(apiClient, repositoryName, newCommitID, "a/b") require.NoError(t, err) err = pfsutil.MakeDirectory(apiClient, repositoryName, newCommitID, "a/c") require.NoError(t, err) doWrites(t, apiClient, repositoryName, newCommitID) err = pfsutil.Write(apiClient, repositoryName, newCommitID) require.NoError(t, err) commitInfo, err = pfsutil.GetCommitInfo(apiClient, repositoryName, newCommitID) require.NoError(t, err) require.NotNil(t, commitInfo) require.Equal(t, newCommitID, commitInfo.Commit.Id) require.Equal(t, pfs.CommitType_COMMIT_TYPE_READ, commitInfo.CommitType) require.Equal(t, "scratch", commitInfo.ParentCommit.Id) checkWrites(t, apiClient, repositoryName, newCommitID) fileInfos, err := pfsutil.ListFiles(apiClient, repositoryName, newCommitID, "a/b", 0, 1) require.NoError(t, err) require.Equal(t, testSize, len(fileInfos.FileInfo)) fileInfos, err = pfsutil.ListFiles(apiClient, repositoryName, newCommitID, "a/c", 0, 1) require.NoError(t, err) require.Equal(t, testSize, len(fileInfos.FileInfo)) var fileInfos2 [7][]*pfs.FileInfo var wg sync.WaitGroup for i := 0; i < 7; i++ { i := i wg.Add(1) go func() { defer wg.Done() fileInfos3, iErr := pfsutil.ListFiles(apiClient, repositoryName, newCommitID, "a/b", uint64(i), 7) require.NoError(t, iErr) fileInfos2[i] = fileInfos3.FileInfo }() } wg.Wait() count := 0 for i := 0; i < 7; i++ { count += len(fileInfos2[i]) } require.Equal(t, testSize, count) }