IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 25, 2009, 3:37:05 PM (17 years ago)
Author:
eugene
Message:

merging differences from trunk: ptest.pl was re-written; nebGetXattr, nebRemoveXattr, nebListXattr functions and tests added; updates to Doxyfile.in; Build.PL removes nebclient installation

Location:
branches/neb_distrib_20081210/Nebulous
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/neb_distrib_20081210/Nebulous

  • branches/neb_distrib_20081210/Nebulous/nebclient

    • Property svn:ignore set to
      Doxyfile
      Makefile
      Makefile.in
      aclocal.m4
      autom4te.cache
      compile
      config.guess
      config.h
      config.h.in
      config.log
      config.status
      config.sub
      configure
      depcomp
      docs
      install-sh
      libtool
      ltmain.sh
      missing
      nebclient.pc
      stamp-h1
  • branches/neb_distrib_20081210/Nebulous/nebclient/Doxyfile.in

    r20900 r23536  
    1 # Doxyfile 1.4.2
     1# Doxyfile 1.5.4
    22
    33# This file describes the settings to be used by the documentation system
     
    1515#---------------------------------------------------------------------------
    1616
     17# This tag specifies the encoding used for all characters in the config file that
     18# follow. The default is UTF-8 which is also the encoding used for all text before
     19# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
     20# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
     21# possible encodings.
     22
     23DOXYFILE_ENCODING      = UTF-8
     24
    1725# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
    1826# by quotes) that should identify the project.
    1927
    20 PROJECT_NAME           = @PACKAGE_NAME@
     28PROJECT_NAME           = nebclient
    2129
    2230# The PROJECT_NUMBER tag can be used to enter a project or revision number.
     
    2432# if some version control system is used.
    2533
    26 PROJECT_NUMBER         = @PACKAGE_VERSION@
     34PROJECT_NUMBER         = 0.08
    2735
    2836# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
     
    3139# where doxygen was started. If left blank the current directory will be used.
    3240
    33 # @top_builddir@ doesn't work for some reason
    34 OUTPUT_DIRECTORY       = @builddir@/docs
     41OUTPUT_DIRECTORY       = ./docs
    3542
    3643# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
     
    4754# information to generate all constant output in the proper language.
    4855# The default language is English, other supported languages are:
    49 # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
    50 # Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
    51 # Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
    52 # Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
    53 # Swedish, and Ukrainian.
     56# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
     57# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
     58# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
     59# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
     60# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
    5461
    5562OUTPUT_LANGUAGE        = English
    56 
    57 # This tag can be used to specify the encoding used in the generated output.
    58 # The encoding is not always determined by the language that is chosen,
    59 # but also whether or not the output is meant for Windows or non-Windows users.
    60 # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
    61 # forces the Windows encoding (this is the default for the Windows binary),
    62 # whereas setting the tag to NO uses a Unix-style encoding (the default for
    63 # all platforms other than Windows).
    64 
    65 USE_WINDOWS_ENCODING   = NO
    6663
    6764# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
     
    137134# will interpret the first line (until the first dot) of a JavaDoc-style
    138135# comment as the brief description. If set to NO, the JavaDoc
    139 # comments will behave just like the Qt-style comments (thus requiring an
    140 # explicit @brief command for a brief description.
     136# comments will behave just like regular Qt-style comments
     137# (thus requiring an explicit @brief command for a brief description.)
    141138
    142139JAVADOC_AUTOBRIEF      = NO
     140
     141# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
     142# interpret the first line (until the first dot) of a Qt-style
     143# comment as the brief description. If set to NO, the comments
     144# will behave just like regular Qt-style comments (thus requiring
     145# an explicit \brief command for a brief description.)
     146
     147QT_AUTOBRIEF           = NO
    143148
    144149# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
     
    162167
    163168INHERIT_DOCS           = YES
    164 
    165 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
    166 # tag is set to YES, then doxygen will reuse the documentation of the first
    167 # member in the group (if any) for the other members of the group. By default
    168 # all members of a group must be documented explicitly.
    169 
    170 DISTRIBUTE_GROUP_DOC   = NO
    171169
    172170# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
     
    197195OPTIMIZE_OUTPUT_FOR_C  = NO
    198196
    199 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
    200 # only. Doxygen will then generate output that is more tailored for Java.
     197# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
     198# sources only. Doxygen will then generate output that is more tailored for Java.
    201199# For instance, namespaces will be presented as packages, qualified scopes
    202200# will look different, etc.
    203201
    204202OPTIMIZE_OUTPUT_JAVA   = NO
     203
     204# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
     205# include (a tag file for) the STL sources as input, then you should
     206# set this tag to YES in order to let doxygen match functions declarations and
     207# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
     208# func(std::string) {}). This also make the inheritance and collaboration
     209# diagrams that involve STL classes more complete and accurate.
     210
     211BUILTIN_STL_SUPPORT    = NO
     212
     213# If you use Microsoft's C++/CLI language, you should set this option to YES to
     214# enable parsing support.
     215
     216CPP_CLI_SUPPORT        = NO
     217
     218# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
     219# Doxygen will parse them like normal C++ but will assume all classes use public
     220# instead of private inheritance when no explicit protection keyword is present.
     221
     222SIP_SUPPORT            = NO
     223
     224# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
     225# tag is set to YES, then doxygen will reuse the documentation of the first
     226# member in the group (if any) for the other members of the group. By default
     227# all members of a group must be documented explicitly.
     228
     229DISTRIBUTE_GROUP_DOC   = NO
    205230
    206231# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
     
    212237SUBGROUPING            = YES
    213238
     239# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct (or union) is
     240# documented as struct with the name of the typedef. So
     241# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
     242# with name TypeT. When disabled the typedef will appear as a member of a file,
     243# namespace, or class. And the struct will be named TypeS. This can typically
     244# be useful for C code where the coding convention is that all structs are
     245# typedef'ed and only the typedef is referenced never the struct's name.
     246
     247TYPEDEF_HIDES_STRUCT   = NO
     248
    214249#---------------------------------------------------------------------------
    215250# Build related configuration options
     
    245280
    246281EXTRACT_LOCAL_METHODS  = NO
     282
     283# If this flag is set to YES, the members of anonymous namespaces will be extracted
     284# and appear in the documentation as a namespace called 'anonymous_namespace{file}',
     285# where file will be replaced with the base name of the file that contains the anonymous
     286# namespace. By default anonymous namespace are hidden.
     287
     288EXTRACT_ANON_NSPACES   = NO
    247289
    248290# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
     
    378420# If the sources in your project are distributed over multiple directories
    379421# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
    380 # in the documentation.
     422# in the documentation. The default is NO.
    381423
    382424SHOW_DIRECTORIES       = YES
     
    387429# popen()) the command <command> <input-file>, where <command> is the value of
    388430# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
    389 # provided by doxygen. Whatever the progam writes to standard output
     431# provided by doxygen. Whatever the program writes to standard output
    390432# is used as the file version. See the manual for examples.
    391433
     
    435477# be obtained via FILE_VERSION_FILTER)
    436478
    437 WARN_FORMAT            = "$file:$line: $text"
     479WARN_FORMAT            = "$file:$line: $text "
    438480
    439481# The WARN_LOGFILE tag can be used to specify a file to which warning
     
    452494# with spaces.
    453495
    454 INPUT                  = @top_srcdir@/src
     496INPUT                  = ./src
     497
     498# This tag can be used to specify the character encoding of the source files that
     499# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
     500# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
     501# See http://www.gnu.org/software/libiconv for the list of possible encodings.
     502
     503INPUT_ENCODING         = UTF-8
    455504
    456505# If the value of the INPUT tag contains directories, you can use the
     
    459508# blank the following patterns are tested:
    460509# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
    461 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
     510# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
    462511
    463512FILE_PATTERNS          = *.h
     
    483532# If the value of the INPUT tag contains directories, you can use the
    484533# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
    485 # certain files from those directories.
     534# certain files from those directories. Note that the wildcards are matched
     535# against the file with absolute path, so to exclude all test directories
     536# for example use the pattern */test/*
    486537
    487538EXCLUDE_PATTERNS       =
     539
     540# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
     541# (namespaces, classes, functions, etc.) that should be excluded from the output.
     542# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
     543# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
     544
     545EXCLUDE_SYMBOLS        =
    488546
    489547# The EXAMPLE_PATH tag can be used to specify one or more files or
     
    545603# be generated. Documented entities will be cross-referenced with these sources.
    546604# Note: To get rid of all source code in the generated output, make sure also
    547 # VERBATIM_HEADERS is set to NO.
     605# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH
     606# then you must also enable this option. If you don't then doxygen will produce
     607# a warning and turn it on anyway
    548608
    549609SOURCE_BROWSER         = NO
     
    571631
    572632REFERENCES_RELATION    = YES
     633
     634# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
     635# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
     636# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
     637# link to the source code.  Otherwise they will link to the documentstion.
     638
     639REFERENCES_LINK_SOURCE = YES
     640
     641# If the USE_HTAGS tag is set to YES then the references to source code
     642# will point to the HTML generated by the htags(1) tool instead of doxygen
     643# built-in source browser. The htags tool is part of GNU's global source
     644# tagging system (see http://www.gnu.org/software/global/global.html). You
     645# will need version 4.8.6 or higher.
     646
     647USE_HTAGS              = NO
    573648
    574649# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
     
    656731GENERATE_HTMLHELP      = NO
    657732
     733# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
     734# documentation will contain sections that can be hidden and shown after the
     735# page has loaded. For this to work a browser that supports
     736# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
     737# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
     738
     739HTML_DYNAMIC_SECTIONS  = NO
     740
    658741# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
    659742# be used to specify the file name of the resulting .chm file. You
     
    9581041# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
    9591042# then the macro expansion is limited to the macros specified with the
    960 # PREDEFINED and EXPAND_AS_PREDEFINED tags.
     1043# PREDEFINED and EXPAND_AS_DEFINED tags.
    9611044
    9621045EXPAND_ONLY_PREDEF     = NO
     
    10461129# interpreter (i.e. the result of `which perl').
    10471130
    1048 PERL_PATH              = @PERL@
     1131PERL_PATH              = /usr/bin/perl
    10491132
    10501133#---------------------------------------------------------------------------
     
    10611144CLASS_DIAGRAMS         = YES
    10621145
     1146# You can define message sequence charts within doxygen comments using the \msc
     1147# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
     1148# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
     1149# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
     1150# be found in the default search path.
     1151
     1152MSCGEN_PATH            =
     1153
    10631154# If set to YES, the inheritance and collaboration graphs will hide
    10641155# inheritance and usage relations if the target is undocumented
     
    11181209INCLUDED_BY_GRAPH      = YES
    11191210
    1120 # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
     1211# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
    11211212# generate a call dependency graph for every global function or class method.
    11221213# Note that enabling this option will significantly increase the time of a run.
     
    11261217CALL_GRAPH             = NO
    11271218
     1219# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
     1220# generate a caller dependency graph for every global function or class method.
     1221# Note that enabling this option will significantly increase the time of a run.
     1222# So in most cases it will be better to enable caller graphs for selected
     1223# functions only using the \callergraph command.
     1224
     1225CALLER_GRAPH           = NO
     1226
    11281227# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
    11291228# will graphical hierarchy of all classes instead of a textual one.
     
    11551254DOTFILE_DIRS           =
    11561255
    1157 # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
    1158 # (in pixels) of the graphs generated by dot. If a graph becomes larger than
    1159 # this value, doxygen will try to truncate the graph, so that it fits within
    1160 # the specified constraint. Beware that most browsers cannot cope with very
    1161 # large images.
    1162 
    1163 MAX_DOT_GRAPH_WIDTH    = 1024
    1164 
    1165 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
    1166 # (in pixels) of the graphs generated by dot. If a graph becomes larger than
    1167 # this value, doxygen will try to truncate the graph, so that it fits within
    1168 # the specified constraint. Beware that most browsers cannot cope with very
    1169 # large images.
    1170 
    1171 MAX_DOT_GRAPH_HEIGHT   = 1024
     1256# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
     1257# nodes that will be shown in the graph. If the number of nodes in a graph
     1258# becomes larger than this value, doxygen will truncate the graph, which is
     1259# visualized by representing a node as a red box. Note that doxygen if the number
     1260# of direct children of the root node in a graph is already larger than
     1261# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
     1262# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
     1263
     1264DOT_GRAPH_MAX_NODES    = 50
    11721265
    11731266# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
     
    11761269# that lay further from the root node will be omitted. Note that setting this
    11771270# option to 1 or 2 may greatly reduce the computation time needed for large
    1178 # code bases. Also note that a graph may be further truncated if the graph's
    1179 # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
    1180 # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
    1181 # the graph is not depth-constrained.
     1271# code bases. Also note that the size of a graph can be further restricted by
     1272# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
    11821273
    11831274MAX_DOT_GRAPH_DEPTH    = 0
  • branches/neb_distrib_20081210/Nebulous/nebclient/src/nebclient.c

    r20986 r23536  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.c,v 1.54.6.1 2008-12-14 22:03:08 eugene Exp $
     6 * $Id: nebclient.c,v 1.57 2009-02-13 02:45:47 jhoblitt Exp $
    77 */
    88
     
    336336bool nebSetXattr(nebServer *server, const char *key, const char *name, const char *value, nebCR flag)
    337337{
    338 
    339338    REQUIRE_SERVER;
    340339
     
    363362    if (!response) {
    364363        nebSetErr(server, "can not set xattr");
     364        return false;
     365    }
     366
     367    return true;
     368}
     369
     370
     371char *nebGetXattr(nebServer *server, const char *key, const char *name)
     372{
     373    REQUIRE_SERVER;
     374
     375    if (!key) {
     376        nebSetErr(server, "parameter 'key' may not be NULL");
     377        return false;
     378    }
     379    if (!name) {
     380        nebSetErr(server, "parameter 'name' may not be NULL");
     381        return false;
     382    }
     383
     384    struct ns1__getxattr_USCOREobjectResponse response;
     385    if (soap_call_ns1__getxattr_USCOREobject(server->soap, server->endpoint,
     386        NULL, (char *)key, (char *)name, (char **)&response) != SOAP_OK) {
     387        nebSetServerErr(server);
     388        return false;
     389    }
     390
     391    if (!(char *)response.result) {
     392        nebSetErr(server, "server returned no result");
     393        return NULL;
     394    }
     395
     396    char *value = xmalloc(strlen((char *)response.result) + 1);
     397    strcpy(value, (char *)response.result);
     398
     399    return value;
     400}
     401
     402
     403int nebListXattr(nebServer *server, const char *key, char ***xattrs)
     404{
     405    REQUIRE_SERVER;
     406
     407    if (!key) {
     408        nebSetErr(server, "parameter 'key' may not be NULL");
     409        return false;
     410    }
     411
     412    struct ns1__listxattr_USCOREobjectResponse response;
     413    if (soap_call_ns1__listxattr_USCOREobject(server->soap, server->endpoint,
     414        NULL, (char *)key, &response) != SOAP_OK) {
     415        nebSetServerErr(server);
     416        return false;
     417    }
     418
     419    int resultElements = response.result->__size;
     420
     421    if (xattrs) {
     422        char **resultArray = response.result->__ptr;
     423        *xattrs = xmalloc(resultElements * sizeof(char *));
     424        if (resultElements) {
     425            for (int i = 0; i < resultElements; i++) {
     426                *xattrs[i] = xmalloc(strlen(resultArray[i]) + 1);
     427                strcpy(*xattrs[i], resultArray[i]);
     428            }
     429
     430        }
     431    }
     432
     433    return resultElements;
     434}
     435
     436
     437bool nebRemoveXattr(nebServer *server, const char *key, const char *name)
     438{
     439    REQUIRE_SERVER;
     440
     441    if (!key) {
     442        nebSetErr(server, "parameter 'key' may not be NULL");
     443        return false;
     444    }
     445    if (!name) {
     446        nebSetErr(server, "parameter 'name' may not be NULL");
     447        return false;
     448    }
     449
     450    int response;
     451    if (soap_call_ns1__removexattr_USCOREobject(server->soap, server->endpoint,
     452        NULL, (char *)key, (char *)name, &response) != SOAP_OK) {
     453        nebSetServerErr(server);
     454        return false;
     455    }
     456
     457    if (!response) {
     458        nebSetErr(server, "can not remove xattr");
    365459        return false;
    366460    }
     
    539633
    540634    for (int i = 0; i < locations->n; i++) {
    541         if (!nebDeleteInstance(server, key, locations->URI[i])) {
     635      if (!nebDeleteInstance(server, key, locations->URI[i])) {
    542636            nebSetErr(server, "can not delete instance");
    543637            nebObjectInstancesFree(locations);
     
    676770
    677771    if (soap_call_ns1__delete_USCOREinstance(server->soap, server->endpoint,
    678             NULL, (char *)key, (char *)URI, &response) != SOAP_OK) {
     772        NULL, (char *)key, (char *)URI, &response) != SOAP_OK) {
    679773        nebFree(filename);
    680774
  • branches/neb_distrib_20081210/Nebulous/nebclient/src/nebclient.h

    r20986 r23536  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.h,v 1.36.6.1 2008-12-14 22:03:08 eugene Exp $
     6 * $Id: nebclient.h,v 1.40 2009-02-13 02:49:00 jhoblitt Exp $
    77 */
    88
     
    155155);
    156156
     157/** Get an Xattr on a storage object
     158 *
     159 * @return true on success
     160 */
     161char *nebGetXattr(
     162    nebServer *server,                  ///< nebServer object
     163    const char *key,                    ///< storage object key (name)
     164    const char *name                    ///< xattr name
     165);
     166
     167/** List all Xattrs on a storage object
     168 *
     169 * This function returns the count of Xattrs on an object and the actual names
     170 * are returned in the (char **) pointed to by the xattrs param.  The xattrs
     171 * param may be NULL.
     172 *
     173 * @return int
     174 */
     175int nebListXattr(
     176    nebServer *server,                  ///< nebServer object
     177    const char *key,                    ///< storage object key (name)
     178    char ***xattrs                      ///< array of xattr names to return
     179);
     180
     181/** Remove an Xattr from a storage object
     182 *
     183 * @return true on success
     184 */
     185bool nebRemoveXattr(
     186    nebServer *server,                  ///< nebServer object
     187    const char *key,                    ///< storage object key (name)
     188    const char *name                    ///< xattr name
     189);
     190
    157191/** Lists all instances of a storage object
    158192 *
  • branches/neb_distrib_20081210/Nebulous/nebclient/tests

    • Property svn:ignore set to
      .deps
      Makefile
      Makefile.in
      .libs
      tests
  • branches/neb_distrib_20081210/Nebulous/nebclient/tests/tap

    • Property svn:ignore
      •  

        old new  
         1*.bb
         2*.bbg
         3*.da
        14.in
        25Makefile
         
        47aclocal.m4
        58autom4te.cache
         9config.guess
        610config.log
        711config.status
         12config.sub
        813configure
         14depcomp
         15gmon.out
         16install-sh
        917libtool
        10 *.bb
        11 *.bbg
        12 *.da
        13 gmon.out
         18ltmain.sh
         19missing
         20src/.deps
         21src/Makefile
         22src/Makefile.in
         23src/config.h
         24src/config.h.in
         25src/stamp-h1
  • branches/neb_distrib_20081210/Nebulous/nebclient/tests/tap/src

    • Property svn:ignore
      •  

        old new  
         1*.bb
         2*.bbg
         3*.da
        14.deps
        25.libs
        36Makefile
        47Makefile.in
        5 libtap.la
        6 tap.lo
        78config.h
        89config.h.in
         10gmon.out
         11ignore
         12libtap.la
        913stamp-h1
        10 *.bb
        11 *.bbg
        12 *.da
        13 gmon.out
         14tap.lo
  • branches/neb_distrib_20081210/Nebulous/nebclient/tests/tests.c

    r20900 r23536  
    22#include <stdlib.h>
    33#include <unistd.h>
     4#include <string.h>
    45#include <stdbool.h>
    56
     
    1920    char            *key = "foobarbaz";
    2021
    21     plan_tests(24);
     22    plan_tests(28);
    2223
    2324    if (getenv("NEB_SERVER")) {
     
    9697    neb_ok(server, nebSetXattr(server, key, "user.copies", "2",  NEB_CREATE), "set user.copies xattr");
    9798
     99    char *copies = nebGetXattr(server, key, "user.copies");
     100    neb_ok(server, strcmp(copies, "2") == 0, "get user.copies xattr");
     101    char **xattrs = NULL;
     102    int n_xattrs = nebListXattr(server, key, &xattrs);
     103    printf("# %s\n\n", xattrs[0]);
     104    neb_ok(server, n_xattrs == 1, "count of xattrs");
     105    neb_ok(server, strcmp(xattrs[0], "user.copies") == 0, "user.copies xattr exists");
     106    neb_ok(server, nebRemoveXattr(server, key, "user.copies"), "remove user.copies xattr");
     107
    98108    {
    99109        nebObjectInstances *locations = NULL;
Note: See TracChangeset for help on using the changeset viewer.