|  | @@ -53,9 +53,8 @@ static void test_compression_algorithm_parse(void) {
 | 
	
		
			
				|  |  |    for (i = 0; i < GPR_ARRAY_SIZE(valid_names); i++) {
 | 
	
		
			
				|  |  |      const char *valid_name = valid_names[i];
 | 
	
		
			
				|  |  |      grpc_compression_algorithm algorithm;
 | 
	
		
			
				|  |  | -    int success;
 | 
	
		
			
				|  |  | -    success = grpc_compression_algorithm_parse(valid_name, strlen(valid_name),
 | 
	
		
			
				|  |  | -                                               &algorithm);
 | 
	
		
			
				|  |  | +    const int success = grpc_compression_algorithm_parse(
 | 
	
		
			
				|  |  | +        valid_name, strlen(valid_name), &algorithm);
 | 
	
		
			
				|  |  |      GPR_ASSERT(success != 0);
 | 
	
		
			
				|  |  |      GPR_ASSERT(algorithm == valid_algorithms[i]);
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -71,9 +70,93 @@ static void test_compression_algorithm_parse(void) {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +static void test_compression_algorithm_name(void) {
 | 
	
		
			
				|  |  | +  int success;
 | 
	
		
			
				|  |  | +  char *name;
 | 
	
		
			
				|  |  | +  size_t i;
 | 
	
		
			
				|  |  | +  const char *valid_names[] = {"identity", "gzip", "deflate"};
 | 
	
		
			
				|  |  | +  const grpc_compression_algorithm valid_algorithms[] = {
 | 
	
		
			
				|  |  | +      GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  gpr_log(GPR_DEBUG, "test_compression_algorithm_name");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  for (i = 0; i < GPR_ARRAY_SIZE(valid_algorithms); i++) {
 | 
	
		
			
				|  |  | +    success = grpc_compression_algorithm_name(valid_algorithms[i], &name);
 | 
	
		
			
				|  |  | +    GPR_ASSERT(success != 0);
 | 
	
		
			
				|  |  | +    GPR_ASSERT(strcmp(name, valid_names[i]) == 0);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  success =
 | 
	
		
			
				|  |  | +      grpc_compression_algorithm_name(GRPC_COMPRESS_ALGORITHMS_COUNT, &name);
 | 
	
		
			
				|  |  | +  GPR_ASSERT(success == 0);
 | 
	
		
			
				|  |  | +  /* the value of "name" is undefined upon failure */
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static void test_compression_algorithm_for_level(void) {
 | 
	
		
			
				|  |  | +  size_t i;
 | 
	
		
			
				|  |  | +  grpc_compression_level levels[] = {
 | 
	
		
			
				|  |  | +      GRPC_COMPRESS_LEVEL_NONE, GRPC_COMPRESS_LEVEL_LOW,
 | 
	
		
			
				|  |  | +      GRPC_COMPRESS_LEVEL_MED, GRPC_COMPRESS_LEVEL_HIGH};
 | 
	
		
			
				|  |  | +  grpc_compression_algorithm algorithms[] = {GRPC_COMPRESS_NONE,
 | 
	
		
			
				|  |  | +    GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_DEFLATE};
 | 
	
		
			
				|  |  | +  gpr_log(GPR_DEBUG, "test_compression_algorithm_for_level");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  for (i = 0; i < GPR_ARRAY_SIZE(levels); i++) {
 | 
	
		
			
				|  |  | +    GPR_ASSERT(algorithms[i] ==
 | 
	
		
			
				|  |  | +               grpc_compression_algorithm_for_level(levels[i]));
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static void test_compression_level_for_algorithm(void) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  size_t i;
 | 
	
		
			
				|  |  | +  grpc_compression_level levels[] = {
 | 
	
		
			
				|  |  | +      GRPC_COMPRESS_LEVEL_NONE, GRPC_COMPRESS_LEVEL_LOW,
 | 
	
		
			
				|  |  | +      GRPC_COMPRESS_LEVEL_LOW, GRPC_COMPRESS_LEVEL_LOW};
 | 
	
		
			
				|  |  | +  grpc_compression_algorithm algorithms[] = {GRPC_COMPRESS_NONE,
 | 
	
		
			
				|  |  | +    GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_DEFLATE, GRPC_COMPRESS_DEFLATE};
 | 
	
		
			
				|  |  | +  gpr_log(GPR_DEBUG, "test_compression_level_for_algorithm");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  for (i = 0; i < GPR_ARRAY_SIZE(algorithms); i++) {
 | 
	
		
			
				|  |  | +    GPR_ASSERT(levels[i] ==
 | 
	
		
			
				|  |  | +               grpc_compression_level_for_algorithm(algorithms[i]));
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static void test_compression_enable_disable_algorithm(void) {
 | 
	
		
			
				|  |  | +  grpc_compression_options options;
 | 
	
		
			
				|  |  | +  grpc_compression_algorithm algorithm;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  gpr_log(GPR_DEBUG, "test_compression_enable_disable_algorithm");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  grpc_compression_options_init(&options);
 | 
	
		
			
				|  |  | +  for (algorithm = GRPC_COMPRESS_NONE; algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
 | 
	
		
			
				|  |  | +    /* all algorithms are enabled by default */
 | 
	
		
			
				|  |  | +    GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
 | 
	
		
			
				|  |  | +                                                             algorithm) != 0);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  /* disable one by one */
 | 
	
		
			
				|  |  | +  for (algorithm = GRPC_COMPRESS_NONE; algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
 | 
	
		
			
				|  |  | +    grpc_compression_options_disable_algorithm(&options, algorithm);
 | 
	
		
			
				|  |  | +    GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
 | 
	
		
			
				|  |  | +                                                             algorithm) == 0);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  /* re-enable one by one */
 | 
	
		
			
				|  |  | +  for (algorithm = GRPC_COMPRESS_NONE; algorithm < GRPC_COMPRESS_ALGORITHMS_COUNT; algorithm++) {
 | 
	
		
			
				|  |  | +    grpc_compression_options_enable_algorithm(&options, algorithm);
 | 
	
		
			
				|  |  | +    GPR_ASSERT(grpc_compression_options_is_algorithm_enabled(&options,
 | 
	
		
			
				|  |  | +                                                             algorithm) != 0);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  int main(int argc, char **argv) {
 | 
	
		
			
				|  |  |    grpc_init();
 | 
	
		
			
				|  |  |    test_compression_algorithm_parse();
 | 
	
		
			
				|  |  | +  test_compression_algorithm_name();
 | 
	
		
			
				|  |  | +  test_compression_algorithm_for_level();
 | 
	
		
			
				|  |  | +  test_compression_level_for_algorithm();
 | 
	
		
			
				|  |  | +  test_compression_enable_disable_algorithm();
 | 
	
		
			
				|  |  |    grpc_shutdown();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    return 0;
 |