Changeset 04d66804 in mainline for kernel/test/cht/cht1.c


Ignore:
Timestamp:
2012-11-20T17:35:55Z (13 years ago)
Author:
Adam Hraska <adam.hraska+hos@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
669f3d32
Parents:
0adfc9d
Message:

cht: Expanded cht_insert_unique() to return a duplicate if found.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/test/cht/cht1.c

    r0adfc9d r04d66804  
    124124        set_val(v[4], 2, key[4]);
    125125        set_val(v[5], 3, key[5]);
     126       
     127        cht_link_t *dup;
    126128                       
    127         if (!cht_insert_unique(h, &v[0]->link))
     129        if (!cht_insert_unique(h, &v[0]->link, &dup))
    128130                return "Duplicates in empty";
    129131
    130         if (cht_insert_unique(h, &v[1]->link))
     132        if (cht_insert_unique(h, &v[1]->link, &dup))
    131133                return "Inserted a duplicate";
    132 
    133         if (!cht_insert_unique(h, &v[3]->link))
     134       
     135        if (dup != &v[0]->link)
     136                return "Returned wrong duplicate";
     137
     138        if (!cht_insert_unique(h, &v[3]->link, &dup))
    134139                return "Refused non-equal item but with a hash in table.";
    135140       
     
    138143       
    139144        bool ok = true;
    140         ok = ok && cht_insert_unique(h, &v[4]->link);
    141         ok = ok && cht_insert_unique(h, &v[5]->link);
     145        ok = ok && cht_insert_unique(h, &v[4]->link, &dup);
     146        ok = ok && cht_insert_unique(h, &v[5]->link, &dup);
    142147       
    143148        if (!ok)
     
    398403                               
    399404                                if (item_op) {
    400                                         if (!cht_insert_unique(work->h, &work->elem[elem_idx].link)) {
     405                                        rcu_read_lock();
     406                                        cht_link_t *dup;
     407                                        if (!cht_insert_unique(work->h, &work->elem[elem_idx].link,
     408                                                &dup)) {
    401409                                                TPRINTF("Err: already inserted\n");
    402410                                                work->failed = true;
    403411                                        }
     412                                        rcu_read_unlock();
    404413                                } else {
    405414                                        cht_insert(work->h, &work->elem[elem_idx].link);
Note: See TracChangeset for help on using the changeset viewer.