Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix list filter on multiple packages
Change-Id: Icf7e31b3537e4acee4dc4177816e55af9d2dfcc0
(cherry picked from commit c23734c)
  • Loading branch information
Priyesh Padmavilasom committed Sep 29, 2016
1 parent 5aa22c6 commit 09a7539
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 17 deletions.
36 changes: 20 additions & 16 deletions client/client.c
Expand Up @@ -83,34 +83,38 @@ TDNFApplyPackageFilter(
)
{
uint32_t dwError = 0;
int nCmpType = HY_GLOB;
int nCmpType = HY_EQ;
char** ppszPackagesTemp = NULL;

if(!hQuery || !ppszPackageNameSpecs)
{
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}
while(*ppszPackageNameSpecs)

if(!*ppszPackageNameSpecs)
{
if(TDNFIsGlob(*ppszPackageNameSpecs))
goto cleanup;
}

ppszPackagesTemp = ppszPackageNameSpecs;
while(ppszPackagesTemp && *ppszPackagesTemp)
{
if(TDNFIsGlob(*ppszPackagesTemp))
{
nCmpType = HY_GLOB;
break;
}
else
{
nCmpType = HY_EQ;
}

dwError = hy_query_filter(
hQuery,
HY_PKG_NAME,
nCmpType,
*ppszPackageNameSpecs);
BAIL_ON_TDNF_HAWKEY_ERROR(dwError);

++ppszPackageNameSpecs;
++ppszPackagesTemp;
}

dwError = hy_query_filter_in(
hQuery,
HY_PKG_NAME,
nCmpType,
(const char**)ppszPackageNameSpecs);
BAIL_ON_TDNF_HAWKEY_ERROR(dwError);

cleanup:
return dwError;

Expand Down
9 changes: 9 additions & 0 deletions tests/list.at
Expand Up @@ -27,3 +27,12 @@ AT_KEYWORDS([list])
AT_CHECK([TDNF_CLI_W_CHROOT list installed],\
[243], [ignore], [ignore])
AT_CLEANUP

AT_SETUP([list multi])
AT_KEYWORDS([list])
AT_CHECK([TDNF_CLI_W_CHROOT list tdnf-test-one tdnf-test-tw* | cut -d' ' -f1],\
[0],
[tdnf-test-one.x86_64
tdnf-test-two.x86_64
], [ignore])
AT_CLEANUP
27 changes: 27 additions & 0 deletions tests/specs/tdnf-test-two.spec
@@ -0,0 +1,27 @@
#
# tdnf-test-two spec file
#
Summary: basic install test file.
Name: tdnf-test-two
Version: 1.0.1
Release: 1
Vendor: VMware, Inc.
Distribution: Photon
License: VMware
Url: http://www.vmware.com
Group: Applications/tdnftest

%description
Part of tdnf test spec. Basic install/remove/upgrade test

%prep

%build

%install

%files

%changelog
* Mon May 23 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.0
- Initial build. First version
2 changes: 1 addition & 1 deletion tools/cli/parselistargs.c
Expand Up @@ -67,7 +67,7 @@ TDNFCliParseListArgs(
for(nIndex = 0; nIndex < nPackageCount; ++nIndex)
{
dwError = TDNFAllocateString(
pCmdArgs->ppszCmds[nStartIndex],
pCmdArgs->ppszCmds[nStartIndex + nIndex],
&pListArgs->ppszPackageNameSpecs[nIndex]);
BAIL_ON_CLI_ERROR(dwError);
}
Expand Down

0 comments on commit 09a7539

Please sign in to comment.