OpenCoverage

file-set.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/file-set.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Specialized functions to manipulate a set of files.-
2 Copyright (C) 2007, 2009-2018 Free Software Foundation, Inc.-
3-
4 This program is free software: you can redistribute it and/or modify-
5 it under the terms of the GNU General Public License as published by-
6 the Free Software Foundation; either version 3 of the License, or-
7 (at your option) any later version.-
8-
9 This program is distributed in the hope that it will be useful,-
10 but WITHOUT ANY WARRANTY; without even the implied warranty of-
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
12 GNU General Public License for more details.-
13-
14 You should have received a copy of the GNU General Public License-
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
16-
17/* written by Jim Meyering */-
18-
19#include <config.h>-
20#include "file-set.h"-
21-
22#include "hash-triple.h"-
23#include "xalloc.h"-
24-
25/* Record file, FILE, and dev/ino from *STATS, in the hash table, HT.-
26 If HT is NULL, return immediately.-
27 If memory allocation fails, exit immediately. */-
28void-
29record_file (Hash_table *ht, char const *file, struct stat const *stats)-
30{-
31 struct F_triple *ent;-
32-
33 if (ht == NULL)
ht == ((void *)0)Description
TRUEevaluated 81 times by 1 test
Evaluated by:
  • ln
FALSEevaluated 4157 times by 6 tests
Evaluated by:
  • cp
  • ginstall
  • ln
  • mv
  • readlink
  • realpath
81-4157
34 return;
executed 81 times by 1 test: return;
Executed by:
  • ln
81
35-
36 ent = xmalloc (sizeof *ent);-
37 ent->name = xstrdup (file);-
38 ent->st_ino = stats->st_ino;-
39 ent->st_dev = stats->st_dev;-
40-
41 {-
42 struct F_triple *ent_from_table = hash_insert (ht, ent);-
43 if (ent_from_table == NULL)
ent_from_table == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4157 times by 6 tests
Evaluated by:
  • cp
  • ginstall
  • ln
  • mv
  • readlink
  • realpath
0-4157
44 {-
45 /* Insertion failed due to lack of memory. */-
46 xalloc_die ();-
47 }
never executed: end of block
0
48-
49 if (ent_from_table != ent)
ent_from_table != entDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • cp
FALSEevaluated 4153 times by 6 tests
Evaluated by:
  • cp
  • ginstall
  • ln
  • mv
  • readlink
  • realpath
4-4153
50 {-
51 /* There was alread a matching entry in the table, so ENT was-
52 not inserted. Free it. */-
53 triple_free (ent);-
54 }
executed 4 times by 1 test: end of block
Executed by:
  • cp
4
55 }-
56}
executed 4157 times by 6 tests: end of block
Executed by:
  • cp
  • ginstall
  • ln
  • mv
  • readlink
  • realpath
4157
57-
58/* Return true if there is an entry in hash table, HT,-
59 for the file described by FILE and STATS. */-
60bool-
61seen_file (Hash_table const *ht, char const *file,-
62 struct stat const *stats)-
63{-
64 struct F_triple new_ent;-
65-
66 if (ht == NULL)
ht == ((void *)0)Description
TRUEevaluated 692 times by 3 tests
Evaluated by:
  • cp
  • ginstall
  • mv
FALSEevaluated 218 times by 5 tests
Evaluated by:
  • cp
  • ln
  • mv
  • readlink
  • realpath
218-692
67 return false;
executed 692 times by 3 tests: return 0 ;
Executed by:
  • cp
  • ginstall
  • mv
692
68-
69 new_ent.name = (char *) file;-
70 new_ent.st_ino = stats->st_ino;-
71 new_ent.st_dev = stats->st_dev;-
72-
73 return !!hash_lookup (ht, &new_ent);
executed 218 times by 5 tests: return !!hash_lookup (ht, &new_ent);
Executed by:
  • cp
  • ln
  • mv
  • readlink
  • realpath
218
74}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2